PyQT5对话框
*无特殊注明,所有案例只修改第一个案例的对应部分* ## 输入文字 ```python import sys from PyQt5.QtWidgets import * from PyQt5.QtGui import * # 继承QWidget,用户界面的基本控件,提供了基本的应用构造器 # 默认情况下,构造器是没有父级的,没有父级的构造器被称为窗口(window) class Example(QWidget): # 继承父类构造 def __init__(self): super().__init__() # 使用initUI()方法创建一个GUI self.initUI() # 初始化组件 def initUI(self): # 添加一个按钮 self.btn = QPushButton('Dialog', self) self.btn.move(20, 20) # 绑定自定义函数 self.btn.clicked.connect(self.showDialog) # 添加一个文本 self.le = QLineEdit(self) self.le.move(130, 22) # 不注释了 self.setGeometry(300, 300, 300, 250) self.setWindowTitle('Input dialog') self.show() # 自定义函数 def showDialog(self): # 显示一个对话框 # 第一个参数是输入框的标题 # 第二个参数是输入框的占位符 # 对话框返回输入内容和一个布尔值,如果点击的是OK按钮,布尔值就返回True text, ok = QInputDialog.getText(self, 'Input Dialog', 'Enter your name:') # 修改le的文本 if ok: self.le.setText(str(text)) if __name__ == '__main__': app = QApplication(sys.argv) ex = Example() # 进入应用的主循环中,调用exit()方法或直接销毁主控件时,主循环就会结束 sys.exit(app.exec_()) ``` ![](https://blog.coolcooltomato.com/uploads/article/输入文字.png) ## 选取颜色 ```python # 初始化组件 def initUI(self): # 默认颜色(黑色) col = QColor(0, 0, 0) # 添加一个按钮 self.btn = QPushButton('Dialog', self) self.btn.move(20, 20) # 绑定自定义函数 self.btn.clicked.connect(self.showDialog) # 添加一个框架 self.frm = QFrame(self) self.frm.setStyleSheet("QWidget { background-color: %s }" % col.name()) self.frm.setGeometry(130, 22, 100, 100) # 不注释了 self.setGeometry(300, 300, 300, 250) self.setWindowTitle('Color dialog') self.show() # 自定义函数 def showDialog(self): # 弹出一个对话框,获取颜色 col = QColorDialog.getColor() # 为frm添加背景颜色 if col.isValid(): self.frm.setStyleSheet("QWidget { background-color: %s }" % col.name()) ``` ![](https://blog.coolcooltomato.com/uploads/article/选择颜色.png) ## 选择字体 ```python # 初始化组件 def initUI(self): # 垂直布局 vbox = QVBoxLayout() # 添加一个按钮 btn = QPushButton('Dialog', self) # 设置按钮位置规则 btn.setSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed) btn.move(20, 20) # 把按钮加进去 vbox.addWidget(btn) # 绑定自定义函数 btn.clicked.connect(self.showDialog) # 设置一个标签 self.lbl = QLabel('Knowledge only matters', self) self.lbl.move(130, 20) # 把标签加进去 vbox.addWidget(self.lbl) # 把垂直布局加进去 self.setLayout(vbox) # 不注释了 self.setGeometry(300, 300, 300, 250) self.setWindowTitle('Font dialog') self.show() # 自定义函数 def showDialog(self): # 选取字体 font, ok = QFontDialog.getFont() if ok: # 改变标签字体 self.lbl.setFont(font) ``` ![](https://blog.coolcooltomato.com/uploads/article/选择字体.png) ## 选择文件 ```python import sys from PyQt5.QtWidgets import * from PyQt5.QtGui import * # 又是QMainWindow QAQ class Example(QMainWindow): # 继承父类构造 def __init__(self): super().__init__() # 使用initUI()方法创建一个GUI self.initUI() # 初始化组件 def initUI(self): # 文本框 self.textEdit = QTextEdit() # 放在中间 self.setCentralWidget(self.textEdit) # 状态栏 self.statusBar() # 创建动作 openFile = QAction(QIcon('cat.jpg'), 'Open', self) openFile.setShortcut('Ctrl+O') openFile.setStatusTip('Open new File') openFile.triggered.connect(self.showDialog) # 菜单栏 menubar = self.menuBar() fileMenu = menubar.addMenu('&File') fileMenu.addAction(openFile) # 不注释了 self.setGeometry(300, 300, 300, 250) self.setWindowTitle('File dialog') self.show() # 自定义函数 def showDialog(self): # 弹出打开文件窗口 # 第一个参数是说明文字 # 第二个参数是默认打开的文件夹路径 fname = QFileDialog.getOpenFileName(self, 'Open file', '/') if fname[0]: f = open(fname[0], 'r') with f: data = f.read() # 将data写入文本框 self.textEdit.setText(data) if __name__ == '__main__': app = QApplication(sys.argv) ex = Example() # 进入应用的主循环中,调用exit()方法或直接销毁主控件时,主循环就会结束 sys.exit(app.exec_()) ``` ![](https://blog.coolcooltomato.com/uploads/article/选择文件.png)
创建时间:2023-04-20
|
最后修改:2023-12-27
|
©允许规范转载
酷酷番茄
首页
文章
友链