1. 程式人生 > >【PyQt5-Qt Designer】Qt 的標準對話方塊總結

【PyQt5-Qt Designer】Qt 的標準對話方塊總結

PyQt5 各種彈出對話方塊的總結

 

忙碌了兩天才總結完,深刻體會到 “程式設計在實踐中才能領悟更深”,後續有了更多的 理解繼續來補充。。。

效果如下:

參考:

https://www.cnblogs.com/hhh5460/p/4271475.html

  1 # -*- coding: utf-8 -*-
  2 from PyQt5.QtGui import *
  3 from PyQt5.QtCore import *
  4 from PyQt5.QtWidgets import *
  5 import sys
  6 
  7 
  8
class DialogOptionsWidget(QWidget): 9 def __init__(self, parent=None): 10 super(DialogOptionsWidget, self).__init__(parent) 11 12 def addCheckBox(self, text, value): 13 pass 14 15 def addSpacer(): 16 pass 17 18 def value(): 19 pass 20 21
class StandardDialog(QDialog): 22 def __init__(self, parent=None): 23 super(StandardDialog, self).__init__(parent) 24 25 self.setWindowTitle("Standard Dialog") 26 27 frameStyle = QFrame.Sunken | QFrame.Panel 28 29 mainLayout = QVBoxLayout(self) 30 toolbox = QToolBox()
31 mainLayout.addWidget(toolbox) 32 33 self.errorMessageDialog = QErrorMessage(self) 34 35 pushButton_integer = QPushButton("QInputDialog.get&Int()") 36 pushButton_double = QPushButton("QInputDialog.get&Double()") 37 pushButton_item = QPushButton("QInputDialog.getIte&m()") 38 pushButton_text = QPushButton("QInputDialog.get&Text()") 39 pushButton_multiLineText = QPushButton("QInputDialog.get&MultiLineText()") 40 pushButton_color = QPushButton("QColorDialog.get&Color()") 41 pushButton_font = QPushButton("QFontDialog.get&Font()") 42 pushButton_directory = QPushButton("QFileDialog.getE&xistingDirectory()") 43 pushButton_openFileName = QPushButton("QFileDialog.get&OpenFileName()") 44 pushButton_openFileNames = QPushButton("QFileDialog.&getOpenFileNames()") 45 pushButton_saveFileName = QPushButton("QFileDialog.get&SaveFileName()") 46 pushButton_critical = QPushButton("QMessageBox.critica&l()") 47 pushButton_information = QPushButton("QMessageBox.i&nformation()") 48 pushButton_question = QPushButton("QQMessageBox.&question()") 49 pushButton_warning = QPushButton("QMessageBox.&warning()") 50 pushButton_error = QPushButton("QErrorMessage.showM&essage()") 51 52 self.label_integer = QLabel() 53 self.label_double = QLabel() 54 self.label_item = QLabel() 55 self.label_text = QLabel() 56 self.label_multiLineText = QLabel() 57 self.label_color = QLabel() 58 self.label_font = QLabel() 59 self.label_directory = QLabel() 60 self.label_openFileName = QLabel() 61 self.label_openFileNames = QLabel() 62 self.label_saveFileName = QLabel() 63 self.label_critical = QLabel() 64 self.label_information = QLabel() 65 self.label_question = QLabel() 66 self.label_warning = QLabel() 67 self.label_error = QLabel() 68 69 self.label_integer.setFrameStyle(frameStyle) 70 self.label_double.setFrameStyle(frameStyle) 71 self.label_item.setFrameStyle(frameStyle) 72 self.label_text.setFrameStyle(frameStyle) 73 self.label_multiLineText.setFrameStyle(frameStyle) 74 self.label_color.setFrameStyle(frameStyle) 75 self.label_font.setFrameStyle(frameStyle) 76 self.label_directory.setFrameStyle(frameStyle) 77 self.label_openFileName.setFrameStyle(frameStyle) 78 self.label_openFileNames.setFrameStyle(frameStyle) 79 self.label_saveFileName.setFrameStyle(frameStyle) 80 self.label_critical.setFrameStyle(frameStyle) 81 self.label_information.setFrameStyle(frameStyle) 82 self.label_question.setFrameStyle(frameStyle) 83 self.label_warning.setFrameStyle(frameStyle) 84 self.label_error.setFrameStyle(frameStyle) 85 86 page = QWidget() 87 layout = QGridLayout(page) 88 layout.setColumnStretch(1, 1) 89 layout.setColumnMinimumWidth(1, 250) 90 layout.addWidget(pushButton_integer, 0, 0) 91 layout.addWidget(self.label_integer, 0, 1) 92 layout.addWidget(pushButton_double, 1, 0) 93 layout.addWidget(self.label_double, 1, 1) 94 layout.addWidget(pushButton_item, 2, 0) 95 layout.addWidget(self.label_item, 2, 1) 96 layout.addWidget(pushButton_text, 3, 0) 97 layout.addWidget(self.label_text, 3, 1) 98 layout.addWidget(pushButton_multiLineText, 4, 0) 99 layout.addWidget(self.label_multiLineText, 4, 1) 100 layout.addItem(QSpacerItem(0, 0, QSizePolicy.Ignored, QSizePolicy.MinimumExpanding), 5, 0) 101 toolbox.addItem(page, "Input Dialog") 102 103 page = QWidget() 104 layout = QGridLayout(page) 105 layout.setColumnStretch(1, 1) 106 # layout.setColumnMinimumWidth(1,250) 107 layout.addWidget(pushButton_color, 0, 0) 108 layout.addWidget(self.label_color, 0, 1) 109 colorDialogOptionsWidget = DialogOptionsWidget() 110 colorDialogOptionsWidget.addCheckBox("Do not use native dialog", QColorDialog.DontUseNativeDialog) 111 colorDialogOptionsWidget.addCheckBox("Show alpha channel", QColorDialog.ShowAlphaChannel) 112 colorDialogOptionsWidget.addCheckBox("No buttons", QColorDialog.NoButtons) 113 layout.addItem(QSpacerItem(0, 0, QSizePolicy.Ignored, QSizePolicy.MinimumExpanding), 1, 0) 114 layout.addWidget(colorDialogOptionsWidget, 2, 0, 1, 2) 115 toolbox.addItem(page, "Color Dialog") 116 117 page = QWidget() 118 layout = QGridLayout(page) 119 layout.setColumnStretch(1, 1) 120 layout.addWidget(pushButton_font, 0, 0) 121 layout.addWidget(self.label_font, 0, 1) 122 fontDialogOptionsWidget = DialogOptionsWidget() 123 fontDialogOptionsWidget.addCheckBox("Do not use native dialog", QFontDialog.DontUseNativeDialog) 124 fontDialogOptionsWidget.addCheckBox("No buttons", QFontDialog.NoButtons) 125 layout.addItem(QSpacerItem(0, 0, QSizePolicy.Ignored, QSizePolicy.MinimumExpanding), 1, 0) 126 layout.addWidget(fontDialogOptionsWidget, 2, 0, 1, 2) 127 toolbox.addItem(page, "Font Dialog") 128 129 page = QWidget() 130 layout = QGridLayout(page) 131 layout.setColumnStretch(1, 1) 132 layout.addWidget(pushButton_directory, 0, 0) 133 layout.addWidget(self.label_directory, 0, 1) 134 layout.addWidget(pushButton_openFileName, 1, 0) 135 layout.addWidget(self.label_openFileName, 1, 1) 136 layout.addWidget(pushButton_openFileNames, 2, 0) 137 layout.addWidget(self.label_openFileNames, 2, 1) 138 layout.addWidget(pushButton_saveFileName, 3, 0) 139 layout.addWidget(self.label_saveFileName, 3, 1) 140 fileDialogOptionsWidget = DialogOptionsWidget() 141 fileDialogOptionsWidget.addCheckBox("Do not use native dialog", QFileDialog.DontUseNativeDialog) 142 fileDialogOptionsWidget.addCheckBox("Show directories only", QFileDialog.ShowDirsOnly) 143 fileDialogOptionsWidget.addCheckBox("Do not resolve symlinks", QFileDialog.DontResolveSymlinks) 144 fileDialogOptionsWidget.addCheckBox("Do not confirm overwrite", QFileDialog.DontConfirmOverwrite) 145 fileDialogOptionsWidget.addCheckBox("Do not use sheet", QFileDialog.DontUseSheet) 146 fileDialogOptionsWidget.addCheckBox("Readonly", QFileDialog.ReadOnly) 147 fileDialogOptionsWidget.addCheckBox("Hide name filter details", QFileDialog.HideNameFilterDetails) 148 layout.addItem(QSpacerItem(0, 0, QSizePolicy.Ignored, QSizePolicy.MinimumExpanding), 4, 0) 149 layout.addWidget(fileDialogOptionsWidget, 5, 0, 1, 2) 150 toolbox.addItem(page, "File Dialogs") 151 152 page = QWidget() 153 layout = QGridLayout(page) 154 layout.setColumnStretch(1, 1) 155 layout.addWidget(pushButton_critical, 0, 0) 156 layout.addWidget(self.label_critical, 0, 1) 157 layout.addWidget(pushButton_information, 1, 0) 158 layout.addWidget(self.label_information, 1, 1) 159 layout.addWidget(pushButton_question, 2, 0) 160 layout.addWidget(self.label_question, 2, 1) 161 layout.addWidget(pushButton_warning, 3, 0) 162 layout.addWidget(self.label_warning, 3, 1) 163 layout.addWidget(pushButton_error, 4, 0) 164 layout.addWidget(self.label_error, 4, 1) 165 layout.addItem(QSpacerItem(0, 0, QSizePolicy.Ignored, QSizePolicy.MinimumExpanding), 5, 0) 166 toolbox.addItem(page, "Message Boxes") 167 168 pushButton_integer.clicked.connect(self.setInteger) 169 pushButton_double.clicked.connect(self.setDouble) 170 pushButton_item.clicked.connect(self.setItem) 171 pushButton_text.clicked.connect(self.setText) 172 pushButton_multiLineText.clicked.connect(self.setMultiLineText) 173 pushButton_color.clicked.connect(self.setColor) 174 pushButton_font.clicked.connect(self.setFont) 175 pushButton_directory.clicked.connect(self.setExistingDirectory) 176 pushButton_openFileName.clicked.connect(self.setOpenFileName) 177 pushButton_openFileNames.clicked.connect(self.setOpenFileNames) 178 pushButton_saveFileName.clicked.connect(self.setSaveFileName) 179 pushButton_critical.clicked.connect(self.criticalMessage) 180 pushButton_information.clicked.connect(self.informationMessage) 181 pushButton_question.clicked.connect(self.questionMessage) 182 pushButton_warning.clicked.connect(self.warningMessage) 183 pushButton_error.clicked.connect(self.errorMessage) 184 185 # 輸入對話方塊 取整數 186 def setInteger(self): 187 intNum, ok = QInputDialog.getInt(self, "QInputDialog.getInteger()", "Percentage:", 25, 0, 100, 1) 188 if ok: 189 self.label_integer.setText(str(intNum)) 190 191 # 輸入對話方塊 取實數 192 def setDouble(self): 193 doubleNum, ok = QInputDialog.getDouble(self, "QInputDialog.getDouble()", "Amount:", 37.56, -10000, 10000, 2) 194 if ok: 195 self.label_double.setText(str(doubleNum)) 196 197 # 輸入對話方塊 取列表項 198 def setItem(self): 199 items = ["Spring", "Summer", "Fall", "Winter"] 200 item, ok = QInputDialog.getItem(self, "QInputDialog.getItem()", "Season:", items, 0, False) 201 if ok and item: 202 self.label_item.setText(item) 203 204 # 輸入對話方塊 取文字 205 def setText(self): 206 text, ok = QInputDialog.getText(self, "QInputDialog.getText()", "User name:", QLineEdit.Normal, 207 QDir.home().dirName()) 208 if ok and text: 209 self.label_text.setText(text) 210 211 # 輸入對話方塊 取多行文字 212 def setMultiLineText(self): 213 text, ok = QInputDialog.getMultiLineText(self, "QInputDialog.getMultiLineText()", "Address:", 214 "John Doe\nFreedom Street") 215 if ok and text: 216 self.label_multiLineText.setText(text) 217 218 # 顏色對話方塊 取顏色 219 def setColor(self): 220 # options = QColorDialog.ColorDialogOptions(QFlag.QFlag(colorDialogOptionsWidget.value())) 221 color = QColorDialog.getColor(Qt.green, self, "Select Color") 222 223 if color.isValid(): 224 self.label_color.setText(color.name()) 225 self.label_color.setPalette(QPalette(color)) 226 self.label_color.setAutoFillBackground(True) 227 228 # 字型對話方塊 取字型 229 def setFont(self): 230 # options = QFontDialog.FontDialogOptions(QFlag(fontDialogOptionsWidget.value())) 231 # font, ok = QFontDialog.getFont(ok, QFont(self.label_font.text()), self, "Select Font",options) 232 font, ok = QFontDialog.getFont() 233 if ok: 234 self.label_font.setText(font.key()) 235 self.label_font.setFont(font) 236 237 # 目錄對話方塊 取目錄 238 def setExistingDirectory(self): 239 # options = QFileDialog.Options(QFlag(fileDialogOptionsWidget->value())) 240 # options |= QFileDialog.DontResolveSymlinks | QFileDialog.ShowDirsOnly 241 directory = QFileDialog.getExistingDirectory(self, 242 "QFileDialog.getExistingDirectory()", 243 self.label_directory.text()) 244 if directory: 245 self.label_directory.setText(directory) 246 247 # 開啟檔案對話方塊 取檔名 248 def setOpenFileName(self): 249 # options = QFileDialog.Options(QFlag(fileDialogOptionsWidget.value())) 250 # selectedFilter 251 fileName, filetype = QFileDialog.getOpenFileName(self, 252 "QFileDialog.getOpenFileName()", 253 self.label_openFileName.text(), 254 "All Files (*);;Text Files (*.txt)") 255 if fileName: 256 self.label_openFileName.setText(fileName) 257 258 # 開啟檔案對話方塊 取一組檔名 259 def setOpenFileNames(self): 260 # options = QFileDialog.Options(QFlag(fileDialogOptionsWidget.value())) 261 # selectedFilter 262 openFilesPath = "D:/documents/pyMarksix/draw/" 263 files, ok = QFileDialog.getOpenFileNames(self, 264 "QFileDialog.getOpenFileNames()", 265 openFilesPath, 266 "All Files (*);;Text Files (*.txt)") 267 268 if len(files): 269 self.label_openFileNames.setText(", ".join(files)) 270 271 # 儲存檔案對話方塊 取檔名 272 def setSaveFileName(self): 273 # options = QFileDialog.Options(QFlag(fileDialogOptionsWidget.value())) 274 # selectedFilter 275 fileName, ok = QFileDialog.getSaveFileName(self, 276 "QFileDialog.getSaveFileName()", 277 self.label_saveFileName.text(), 278 "All Files (*);;Text Files (*.txt)") 279 if fileName: 280 self.label_saveFileName.setText(fileName) 281 282 def criticalMessage(self): 283 # reply = QMessageBox.StandardButton() 284 MESSAGE = "批評!" 285 reply = QMessageBox.critical(self, 286 "QMessageBox.critical()", 287 MESSAGE, 288 QMessageBox.Abort | QMessageBox.Retry | QMessageBox.Ignore) 289 if reply == QMessageBox.Abort: 290 self.label_critical.setText("Abort") 291 elif reply == QMessageBox.Retry: 292 self.label_critical.setText("Retry") 293 else: 294 self.label_critical.setText("Ignore") 295 296 def informationMessage(self): 297 MESSAGE = "資訊" 298 reply = QMessageBox.information(self, "QMessageBox.information()", MESSAGE) 299 if reply == QMessageBox.Ok: 300 self.label_information.setText("OK") 301 else: 302 self.label_information.setText("Escape") 303 304 def questionMessage(self): 305 MESSAGE = "疑問" 306 reply = QMessageBox.question(self, "QMessageBox.question()", 307 MESSAGE, 308 QMessageBox.Yes | QMessageBox.No | QMessageBox.Cancel) 309 if reply == QMessageBox.Yes: 310 self.label_question.setText("Yes") 311 elif reply == QMessageBox.No: 312 self.label_question.setText("No") 313 else: 314 self.label_question.setText("Cancel") 315 316 def warningMessage(self): 317 MESSAGE = "警告文字" 318 msgBox = QMessageBox(QMessageBox.Warning, 319 "QMessageBox.warning()", 320 MESSAGE, 321 QMessageBox.Retry | QMessageBox.Discard | QMessageBox.Cancel, 322 self) 323 msgBox.setDetailedText("詳細資訊。。。") 324 # msgBox.addButton("Save &Again", QMessageBox.AcceptRole) 325 # msgBox.addButton("&Continue", QMessageBox.RejectRole) 326 if msgBox.exec() == QMessageBox.AcceptRole: 327 self.label_warning.setText("Retry") 328 else: 329 self.label_warning.setText("Abort") 330 331 def errorMessage(self): 332 self.errorMessageDialog.showMessage( 333 "This dialog shows and remembers error messages. " 334 "If the checkbox is checked (as it is by default), " 335 "the shown message will be shown again, " 336 "but if the user unchecks the box the message " 337 "will not appear again if QErrorMessage.showMessage() " 338 "is called with the same message.") 339 self.label_error.setText("If the box is unchecked, the message " 340 "won't appear again.") 341 342 343 app = QApplication(sys.argv) 344 form = StandardDialog() 345 form.show() 346 app.exec_()
參考程式碼

https://blog.csdn.net/jia666666/article/details/81560756

https://www.jb51.net/article/134636.htm

Qt設計師程式碼:

  1 from PyQt5 import QtCore, QtGui, QtWidgets
  2 
  3 class Ui_Dialog(object):
  4     def setupUi(self, Dialog):
  5         Dialog.setObjectName("Dialog")
  6         Dialog.resize(474, 423)
  7         Dialog.setSizeGripEnabled(True)
  8         self.verticalLayout_2 = QtWidgets.QVBoxLayout(Dialog)
  9         self.verticalLayout_2.setObjectName("verticalLayout_2")
 10         self.toolBox = QtWidgets.QToolBox(Dialog)
 11         self.toolBox.setObjectName("toolBox")
 12         self.page = QtWidgets.QWidget()
 13         self.page.setGeometry(QtCore.QRect(0, 0, 456, 275))
 14         self.page.setObjectName("page")
 15         self.verticalLayout = QtWidgets.QVBoxLayout(self.page)
 16         self.verticalLayout.setObjectName("verticalLayout")
 17         self.frame = QtWidgets.QFrame(self.page)
 18         self.frame.setFrameShape(QtWidgets.QFrame.StyledPanel)
 19         self.frame.setFrameShadow(QtWidgets.QFrame.Raised)
 20         self.frame.setObjectName("frame")
 21         self.gridLayout = QtWidgets.QGridLayout(self.frame)
 22         self.gridLayout.setObjectName("gridLayout")
 23         self.pushButton_3 = QtWidgets.QPushButton(self.frame)
 24         self.pushButton_3.setObjectName("pushButton_3")
 25         self.gridLayout.addWidget(self.pushButton_3, 2, 0, 1, 1)
 26         self.label = QtWidgets.QLabel(self.frame)
 27         self.label.setFrameShape(QtWidgets.QFrame.Panel)
 28         self.label.setFrameShadow(QtWidgets.QFrame.Sunken)
 29         self.label.setText("")
 30         self.label.setObjectName("label")
 31         self.gridLayout.addWidget(self.label, 0, 2, 1, 1)
 32         self.pushButton_2 = QtWidgets.QPushButton(self.frame)
 33         self.pushButton_2.setObjectName("pushButton_2")
 34         self.gridLayout.addWidget(self.pushButton_2, 1, 0, 1, 1)
 35         self.pushButton = QtWidgets.QPushButton(self.frame)
 36         self.pushButton.setObjectName("pushButton")
 37         self.gridLayout.addWidget(self.pushButton, 0, 0, 1, 1)
 38         self.pushButton_4 = QtWidgets.QPushButton(self.frame)
 39         self.pushButton_4.setObjectName("pushButton_4")
 40         self.gridLayout.addWidget(self.pushButton_4, 3, 0, 1, 1)
 41         self.pushButton_5 = QtWidgets.QPushButton(self.frame)
 42         self.pushButton_5.setObjectName("pushButton_5")
 43         self.gridLayout.addWidget(self.pushButton_5, 4, 0, 1, 1)
 44         self.label_2 = QtWidgets.QLabel(self.frame)
 45         self.label_2.setFrameShape(QtWidgets.QFrame.Panel)
 46         self.label_2.setFrameShadow(QtWidgets.QFrame.Sunken)
 47         self.label_2.setText("")
 48         self.label_2.setObjectName("label_2")
 49         self.gridLayout.addWidget(self.label_2, 1, 2, 1, 1)
 50         self.label_4 = QtWidgets.QLabel(self.frame)
 51         self.label_4.setFrameShape(QtWidgets.QFrame.Panel)
 52         self.label_4.setFrameShadow(QtWidgets.QFrame.Sunken)
 53         self.label_4.setText("")
 54         self.label_4.setObjectName("label_4")
 55         self.gridLayout.addWidget(self.label_4, 3, 2, 1, 1)
 56         self.label_5 = QtWidgets.QLabel(self.frame)
 57         self.label_5.setFrameShape(QtWidgets.QFrame.Panel)
 58         self.label_5.setFrameShadow(QtWidgets.QFrame.Sunken)
 59         self.label_5.setText("")
 60         self.label_5.setObjectName("label_5")
 61         self.gridLayout.addWidget(self.label_5, 4, 2, 1, 1)
 62         self.label_3 = QtWidgets.QLabel(self.frame)
 63         self.label_3.setFrameShape(QtWidgets.QFrame.Panel)
 64         self.label_3.setFrameShadow(QtWidgets.QFrame.Sunken)
 65         self.label_3.setText("")
 66         self.label_3.setObjectName("label_3")
 67         self.gridLayout.addWidget(self.label_3, 2, 2, 1, 1)
 68         self.verticalLayout.addWidget(self.frame)
 69         self.toolBox.addItem(self.page, "")
 70         self.page_2 = QtWidgets.QWidget()
 71         self.page_2.setGeometry(QtCore.QRect(0, 0, 456, 275))
 72         self.page_2.setObjectName("page_2")
 73         self.verticalLayout_3 = QtWidgets.QVBoxLayout(self.page_2)
 74         self.verticalLayout_3.setObjectName("verticalLayout_3")
 75         self.frame_2 = QtWidgets.QFrame(self.page_2)
 76         self.frame_2.setFrameShape(QtWidgets.QFrame.StyledPanel)
 77         self.frame_2.setFrameShadow(QtWidgets.QFrame.Raised)
 78         self.frame_2.setObjectName("frame_2")
 79         self.gridLayout_2 = QtWidgets.QGridLayout(self.frame_2)
 80         self.gridLayout_2.setObjectName("gridLayout_2")
 81         self.pushButton_6 = QtWidgets.QPushButton(self.frame_2)
 82         self.pushButton_6.setObjectName("pushButton_6")
 83         self.gridLayout_2.addWidget(self.pushButton_6, 0, 0, 1, 1)
 84         self.label_6 = QtWidgets.QLabel(self.frame_2)
 85         self.label_6.setFrameShape(QtWidgets.QFrame.Panel)
 86         self.label_6.setFrameShadow(QtWidgets.QFrame.Sunken)
 87         self.label_6.setText("")
 88         self.label_6.setObjectName("label_6")
 89         self.gridLayout_2.addWidget(self.label_6, 0, 1, 1, 1)
 90         self.verticalLayout_3.addWidget(self.frame_2)
 91         self.toolBox.addItem(self.page_2, "")
 92         self.page_3 = QtWidgets.QWidget()
 93         self.page_3.setObjectName("page_3")
 94         self.verticalLayout_4 = QtWidgets.QVBoxLayout(self.page_3)
 95         self.verticalLayout_4.setObjectName("verticalLayout_4")
 96         self.frame_3 = QtWidgets.QFrame(self.page_3)
 97         self.frame_3.setFrameShape(QtWidgets.QFrame.StyledPanel)
 98         self.frame_3.setFrameShadow(QtWidgets.QFrame.Raised)
 99         self.frame_3.setObjectName("frame_3")
100         self.gridLayout_3 = QtWidgets.QGridLayout(self.frame_3)
101         self.gridLayout_3.setObjectName("gridLayout_3")
102         self.label_7 = QtWidgets.QLabel(self.frame_3)
103         self.label_7.setFrameShape(QtWidgets.QFrame.Panel)
104         self.label_7.setFrameShadow(QtWidgets.QFrame.Sunken)
105         self.label_7.setText("")
106         self.label_7.setObjectName("label_7")
107         self.gridLayout_3.addWidget(self.label_7, 0, 1, 1, 1)
108         self.pushButton_7 = QtWidgets.QPushButton(self.frame_3)
109         self.pushButton_7.setObjectName("pushButton_7")
110         self.gridLayout_3.addWidget(self.pushButton_7, 0, 0, 1, 1)
111         self.verticalLayout_4.addWidget(self.frame_3)
112         self.toolBox.addItem(self.page_3, "")
113         self.page_4 = QtWidgets.QWidget()
114         self.page_4.setObjectName("page_4")
115         self.verticalLayout_5 = QtWidgets.QVBoxLayout(self.page_4)
116         self.verticalLayout_5.setObjectName("verticalLayout_5")
117         self.frame_4 = QtWidgets.QFrame(self.page_4)
118         self.frame_4.setFrameShape(QtWidgets.QFrame.StyledPanel)
119         self.frame_4.setFrameShadow(QtWidgets.QFrame.Raised)
120         self.frame_4.setObjectName("frame_4")
121         self.gridLayout_4 = QtWidgets.QGridLayout(self.frame_4)
122         self.gridLayout_4.setObjectName("gridLayout_4")
123         self.label_8 = QtWidgets.QLabel(self.frame_4)
124         self.label_8.setFrameShape(QtWidgets.QFrame.Panel)
125         self.label_8.setFrameShadow(QtWidgets.QFrame.Sunken)
126         self.label_8.setText("")
127         self.label_8.setObjectName("label_8")
128         self.gridLayout_4.addWidget(self.label_8, 0, 1, 1, 1)
129         self.pushButton_8 = QtWidgets.QPushButton(self.frame_4)
130         self.pushButton_8.setObjectName("pushButton_8")
131         self.gridLayout_4.addWidget(self.pushButton_8, 0, 0, 1, 1)
132         self.pushButton_9 = QtWidgets.QPushButton(self.frame_4)
133         self.pushButton_9.setObjectName("pushButton_9")
134         self.gridLayout_4.addWidget(self.pushButton_9, 1, 0, 1, 1)
135         self.label_10 = QtWidgets.QLabel(self.frame_4)
136         self.label_10.setFrameShape(QtWidgets.QFrame.Panel)
137         self.label_10.setFrameShadow(QtWidgets.QFrame.Sunken)
138         self.label_10.setText("")
139         self.label_10.setObjectName("label_10")
140         self.gridLayout_4.addWidget(self.label_10, 2, 1, 1, 1)
141         self.label_9 = QtWidgets.QLabel(self.frame_4)
142         self.label_9.setFrameShape(QtWidgets.QFrame.Panel)
143         self.label_9.setFrameShadow(QtWidgets.QFrame.Sunken)
144         self.label_9.setText("")
145         self.label_9.setObjectName("label_9")
146         self.gridLayout_4.addWidget(self.label_9, 1, 1, 1, 1)
147         self.pushButton_10 = QtWidgets.QPushButton(self.frame_4)
148         self.pushButton_10.setObjectName("pushButton_10")
149         self.gridLayout_4.addWidget(self.pushButton_10, 2, 0, 1, 1)
150         self.pushButton_11 = QtWidgets.QPushButton(self.frame_4)
151         self.pushButton_11.setObjectName("pushButton_11")
152         self.gridLayout_4.addWidget(self.pushButton_11, 3, 0, 1, 1)
153         self.label_11 = QtWidgets.QLabel(self.frame_4)
154         self.label_11.setFrameShape(QtWidgets.QFrame.Panel)
155         self.label_11.setFrameShadow(QtWidgets.QFrame.Sunken)
156         self.label_11.setText("")
157         self.label_11.setObjectName("label_11")
158         self.gridLayout_4.addWidget(self.label_11, 3, 1, 1, 1)
159         self.verticalLayout_5.addWidget(self.frame_4)
160         self.toolBox.addItem(self.page_4, "")
161         self.page_5 = QtWidgets.QWidget()
162         self.page_5.setObjectName("page_5")
163         self.verticalLayout_6 = QtWidgets.QVBoxLayout(self.page_5)
164         self.verticalLayout_6.setObjectName("verticalLayout_6")
165         self.frame_5 = QtWidgets.QFrame(self.page_5)
166         self.frame_5.setFrameShape(QtWidgets.QFrame.StyledPanel)
167         self.frame_5.setFrameShadow(QtWidgets.QFrame.Raised)
168         self.frame_5.setObjectName("frame_5")
169         self.gridLayout_5 = QtWidgets.QGridLayout(self.frame_5)
170         self.gridLayout_5.setObjectName("gridLayout_5")
171         self.pushButton_12 = QtWidgets.QPushButton(self.frame_5)
172         self.pushButton_12.setObjectName("pushButton_12")
173         self.gridLayout_5.addWidget(self.pushButton_12, 0, 0, 1, 1)
174         self.label_12 = QtWidgets.QLabel(self.frame_5)
175         self.label_12.setFrameShape(QtWidgets.QFrame.Panel)
176         self.label_12.setFrameShadow(QtWidgets.QFrame.Sunken)
177         self.label_12.setText("")
178         self.label_12.setObjectName("label_12")
179         self.gridLayout_5.addWidget(self.label_12, 0, 1, 1, 1)
180         self.pushButton_13 = QtWidgets.QPushButton(self.frame_5)
181         self.pushButton_13.setObjectName("pushButton_13")
182         self.gridLayout_5.addWidget(self.pushButton_13, 1, 0, 1, 1)
183         self.label_13 = QtWidgets.QLabel(self.frame_5)
184         self.label_13.setFrameShape(QtWidgets.QFrame.Panel)
185         self.label_13.setFrameShadow(QtWidgets.QFrame.Sunken)
186         self.label_13.setText("")
187         self.label_13.setObjectName("label_13")
188         self.gridLayout_5.addWidget(self.label_13, 1, 1, 1, 1)
189         self.pushButton_16 = QtWidgets.QPushButton(self.frame_5)
190         self.pushButton_16.setObjectName("pushButton_16")
191         self.gridLayout_5.addWidget(self.pushButton_16, 4, 0, 1, 1)
192         self.pushButton_15 = QtWidgets.QPushButton(self.frame_5)
193         self.pushButton_15.setObjectName("pushButton_15")
194         self.gridLayout_5.addWidget(self.pushButton_15, 3, 0, 1, 1)
195         self.pushButton_14 = QtWidgets.QPushButton(self.frame_5)
196         self.pushButton_14.setObjectName("pushButton_14")
197         self.gridLayout_5.addWidget(self.pushButton_14, 2, 0, 1, 1)
198         self.label_14 = QtWidgets.QLabel(self.frame_5)
199         self.label_14.setFrameShape(QtWidgets.QFrame.Panel)
200         self.label_14.setFrameShadow(QtWidgets.QFrame.Sunken)
201         self.label_14.setText("")
202         self.label_14.setObjectName("label_14")
203         self.gridLayout_5.addWidget(self.label_14, 2, 1, 1, 1)
204         self.label_15 = QtWidgets.QLabel(self.frame_5)
205         self.label_15.setFrameShape(QtWidgets.QFrame.Panel)
206         self.label_15.setFrameShadow(QtWidgets.QFrame.Sunken)
207         self.label_15.setText("")
208         self.label_15.setObjectName("label_15")
209         self.gridLayout_5.addWidget(self.label_15, 3, 1, 1, 1)
210         self.label_16 = QtWidgets.QLabel(self.frame_5)
211         self.label_16.setFrameShape(QtWidgets.QFrame.Panel)
212         self.label_16.setFrameShadow(QtWidgets.QFrame.Sunken)
213         self.label_16.setText("")
214         self.label_16.setObjectName("label_16")
215         self.gridLayout_5.addWidget(self.label_16, 4, 1, 1, 1)
216         self.verticalLayout_6.addWidget(self.frame_5)
217         self.toolBox.addItem(self.page_5, "")
218         self.verticalLayout_2.addWidget(self.toolBox)
219 
220         self.retranslateUi(Dialog)
221         self.toolBox.setCurrentIndex(4)
222         QtCore.QMetaObject.connectSlotsByName(Dialog)
223 
224     def retranslateUi(self, Dialog):
225         _translate = QtCore.QCoreApplication.translate
226         Dialog.setWindowTitle(_translate("Dialog", "Dialog"))
227         self.pushButton_3.setText(_translate("Dialog", "QInputDialog.getIte&m()"))
228         self.pushButton_2.setText(_translate("Dialog", "QInputDialog.get&Double()"))
229         self.pushButton.setText(_translate("Dialog", "QInputDialog.get&Int()"))
230         self.pushButton_4.setText(_translate("Dialog", "QInputDialog.get&Text()"))
231         self.pushButton_5.setText(_translate("Dialog", "QInputDialog.get&MultiLineText()"))
232         self.toolBox.setItemText(self.toolBox.indexOf(self.page), _translate("Dialog", "Input Dialog"))
233         self.pushButton_6.setText(_translate("Dialog", "QColorDialog.get&Color()"))
234         self.toolBox.setItemText(self.toolBox.indexOf(self.page_2), _translate("Dialog", "Color Dialog"))
235         self.pushButton_7.setText(_translate("Dialog", "QFontDialog.get&Font()"))
236         self.toolBox.setItemText(self.toolBox.indexOf(self.page_3), _translate("Dialog", "Font Dialog"))
237         self.pushButton_8.setText(_translate("Dialog", "QFileDialog.getE&xistingDirectory()"))
238         self.pushButton_9.setText(_translate("Dialog", "\"QFileDialog.get&OpenFileName()"))
239         self.pushButton_10.setText(_translate("Dialog", "QFileDialog.&getOpenFileNames()"))
240         self.pushButton_11.setText(_translate("Dialog", "QFileDialog.get&SaveFileName()"))
241         self.toolBox.setItemText(self.toolBox.indexOf(self.page_4), _translate("Dialog", "File Dialogs"))
242         self.pushButton_12.setText(_translate("Dialog", "QMessageBox.critica&l()"))
243         self.pushButton_13.setText(_translate("Dialog", "QMessageBox.i&nformation()"))
244         self.pushButton_16.setText(_translate("Dialog", "QErrorMessage.showM&essage()"))
245         self.pushButton_15.setText(_translate("Dialog", "QMessageBox.&warning()"))
246         self.pushButton_14.setText(_translate("Dialog", "QQMessageBox.&question()"))
247         self.toolBox.setItemText(self.toolBox.indexOf(self.page_5), _translate("Dialog", "Message Boxes"))
248 
249 
250 if __name__ == "__main__":
251     import sys
252     app = QtWidgets.QApplication(sys.argv)
253     Dialog = QtWidgets.QDialog()
254     ui = Ui_Dialog()
255     ui.setupUi(Dialog)
256     Dialog.show()
257     sys.exit(app.exec_())
介面程式碼

 

  1 # -*- coding: utf-8 -*-
  2 from PyQt5.QtCore import pyqtSlot,QDir,Qt
  3 from PyQt5.QtGui import QPixmap,QFont,QIcon,QPalette
  4 from PyQt5.QtWidgets import QDialog, QApplication, QInputDialog,QErrorMessage,QLineEdit,QColorDialog,QFontDialog,QFileDialog,QMessageBox
  5 from Ui_dialogs import Ui_Dialog
  6 import sys
  7 
  8 
  9 class Dialog(QDialog, Ui_Dialog):
 10     def __init__(self, parent=None):
 11         super(Dialog, self).__init__(parent)
 12         self.setupUi(self)
 13         self.errorMessageDialog = QErrorMessage(self)
 14 
 15         self.slotCustom()
 16 
 17     #自定義一個對話方塊
 18     def slotCustom(self):
 19         customMsgBox = QMessageBox(self)
 20         customMsgBox.setWindowTitle("Custom message box")
 21         lockButton = customMsgBox.addButton(self.tr("鎖定"),
 22                                             QMessageBox.ActionRole)
 23         unlockButton = customMsgBox.addButton(self.tr("解鎖"),
 24                                               QMessageBox.ActionRole)
 25         cancelButton = customMsgBox.addButton("cancel", QMessageBox.ActionRole)
 26 
 27         customMsgBox.setText(self.tr("這是一個自定義訊息框!"))
 28         customMsgBox.exec_()
 29 
 30         button = customMsgBox.clickedButton()
 31         if button == lockButton:
 32             self.label.setText("Custom MessageBox/Lock")
 33         elif button == unlockButton:
 34             self.label.setText("Custom MessageBox/Unlock")
 35         elif button == cancelButton:
 36             self.label.setText("Custom MessageBox/Cancel")
 37 
 38 
 39             #輸入對話方塊 取整數
 40 
 41     @pyqtSlot()
 42     def on_pushButton_clicked(self):
 43         intNum , ok = QInputDialog.getInt(self,"QInputDialog.getInteger()", "Percentage:",value=30,min=0,max=150,step=2)   #數字輸入預設設為30,範圍是0,,10,梯度是2
 44         if ok:
 45             self.label.setText(str(intNum))
 46     # 輸入對話方塊 取實數
 47     @pyqtSlot()
 48     def on_pushButton_2_clicked(self):
 49         doubleNum , ok = QInputDialog.getDouble(self,"QInputDialog.getDouble()", "Amount:", 37.56, -100, 100, 2)    #預設輸入設為37.56,範圍 -100,100,保留2位小數
 50         if ok:
 51             self.label_2.setText(str(doubleNum))
 52     #輸入對話方塊 取列表項
 53     @pyqtSlot()
 54     def on_pushButton_3_clicked(self):
 55         items = ["Spring", "Summer", "Fall", "Winter"]
 56         item, ok = QInputDialog.getItem(self, "QInputDialog.getItem()", "Season:", items, 1, False)     #預設是items[1]
 57         if ok and item:
 58             self.label_3.setText(item)
 59     ## 輸入對話方塊 取文字
 60     @pyqtSlot()
 61     def on_pushButton_4_clicked(self):
 62         text, ok = QInputDialog.getText(self, "QInputDialog.getText()", "User name:", QLineEdit.Normal,QDir.home().dirName())   #QLin