PyQt5-對話方塊控制元件使用(QInputDialog,QFontDialog)
阿新 • • 發佈:2018-12-04
QInputDialog 控制元件是一個標準對話方塊,由一個輸入文字框和兩個按鈕組成;
常用方法如下:
QFontDialog控制元件是一個常用的字型選擇對話方塊,可以讓使用者選擇字型樣式; QFontDialog是QDialog標準對話方塊的一部分;
QFontDialog中靜態方法getFont()可以獲取到選擇的字型樣式;
例如:QInputDialog和QFontDialog例項如下:
1 #QInputDialog對話方塊使用 2 from PyQt5.QtWidgets import QFontDialog, QLineEdit,QStyle,QFormLayout, QInputDialog,QVBoxLayout,QWidget,QApplication ,QHBoxLayout,QDialog,QPushButton,QMainWindow,QGridLayout,QLabel3 4 from PyQt5.QtGui import QIcon,QPixmap,QFont 5 from PyQt5.QtCore import Qt 6 7 import sys 8 9 class WindowClass(QWidget): 10 11 def __init__(self,parent=None): 12 13 super(WindowClass, self).__init__(parent) 14 layout=QFormLayout() 15 self.btnCity=QPushButton()16 self.btnCity.setText("選擇城市") 17 self.btnSal=QPushButton() 18 self.btnSal.setText("輸入工資") 19 self.btnName=QPushButton() 20 self.btnName.setText("輸入名字") 21 self.btnFont= QPushButton() 22 self.btnFont.setText("選擇字型樣式") 23 24 self.btnCity.clicked.connect(self.city)25 self.btnSal.clicked.connect(self.sal) 26 self.btnName.clicked.connect(self.name) 27 self.btnFont.clicked.connect(self.font) 28 29 self.editCity=QLineEdit() 30 self.editSal=QLineEdit() 31 self.editName=QLineEdit() 32 self.editCity.setReadOnly(True) 33 self.editSal.setReadOnly(True) 34 self.editName.setReadOnly(True) 35 36 self.resize(500,500) 37 layout.addRow(self.btnName,self.editName) 38 layout.addRow(self.btnSal,self.editSal) 39 layout.addRow(self.btnCity,self.editCity) 40 layout.addRow(self.btnFont) 41 42 self.setLayout(layout) 43 44 45 def city(self): 46 items=['北京','上海','天津','石家莊'] 47 cityDialog=QInputDialog() 48 item,ok=cityDialog.getItem(self,"選擇城市","城市列表",items,0,False) 49 print(item,ok) 50 if ok and item: 51 self.editCity.setText(item) 52 53 54 def sal(self): 55 salDialog = QInputDialog() 56 s,ok=salDialog.getDouble(self,"設定工資","輸入工資") 57 if ok: 58 self.editSal.setText(str(s)) 59 60 def name(self): 61 nameDialog = QInputDialog() 62 t,ok=nameDialog.getText(self,"設定姓名","輸入名字字串") 63 if ok: 64 self.editName.setText(str(t)) 65 66 #QFontDialog設定第一個QLineEdit文字字型樣式 67 def font(self): 68 fontMsg,ok=QFontDialog.getFont() 69 if ok: 70 self.editName.setFont(fontMsg) 71 72 if __name__=="__main__": 73 app=QApplication(sys.argv) 74 win=WindowClass() 75 win.show() 76 sys.exit(app.exec_())