小序
最近一直在等待
等待一个答案
等待一束花开
正文
上一篇以信号与槽结尾,这篇承续上言,继续PyQt 编程
为方便交互,我们通常都会给用户以提示,提示的方式多数以信息框为主,本篇文章就从此说起。
对话框QDialog
QDialog:通过对话框提示用户输入与任务有关的信息。
常用的对话框有三种
(1) 模态对话框:阻塞同一应用程序中其它可视窗口的输入的对话框,即用户必须完成这个对话框中的交互操作,关闭了它之后才能访问应用程序中的其它任何窗口。例如:确认窗口(选择“是”或“否”)。(exec()函数实现)
(2) 非模态对话框:和同一个程序中其它窗口操作无关的对话框。例如:文字处理软件的查找和替换对话框是非模式,允许同时与应用程序主窗口和对话框进行交互。 (show()函数实现)
(3) “半模态”对话框:是立即把控制返回给调用者的模式对话框。 (show()函数实现)
信息框 QMessageBox
常用的成员函数有
text() 返回被显示的消息框文本
setText() 设置被显示的消息框文本
setIcon() 设置消息框的图标
setTextFormat() 设置消息框中被显示的文本的格式
# information信息框
reply = QMessageBox.information(self,"标题","消息", QMessageBox.Yes | QMessageBox.No,QMessageBox.Yes)
eg. 信息框点击输出(Yes/No)简单实现
from PyQt5 import QtWidgets
from PyQt5.QtWidgets import *
class Window(QtWidgets.QMessageBox):
def __init__(self):
super().__init__()
def msg(self):
reply=QMessageBox.information(self,'标题','消息', QMessageBox.Yes|QMessageBox.No,QMessageBox.Yes)
if reply==QMessageBox.Yes:
print('Yes')
else:
print('No')
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
window = Window()
window.msg()
sys.exit(app.exec_())
输入框 QInputDialog
简单示例
1.
intnum, ok = QInputDialog.getInt(self,'标题','计数:',30,-10000,10000,2)
2.
text, ok = QInputDialog.getText(self, '输入文本框','请输入您的文本内容', QLineEdit.Normal,'默认文字')
3.
items['summer','spring','fall','winter']
item, ok = QInputDialog.getItem(self,'标题','Season:',items,1,False)
文件打开保存框 QFileDialog
※
filter格式:Images (.png .xpm .jpg),如果需要多种类型过滤,用两个 ;; 分割开,eg. "jpg(.jpg);;exe(.exe);;(.*)")
大家可以试一试,下面这三种的输出有什么不同 😃
fileName= QFileDialog.getOpenFileName(self, "Open File",
"c:/",
"Images (*.png *.xpm *.jpg)")
print(fileName)
fileName, ok = QFileDialog.getOpenFileName(self, "Open File",
"c:/",
"Images (*.png *.xpm *.jpg)")
print(fileName, ok)
fileName, ok = QFileDialog.getSaveFileName(self, "保存文件",
"/C:/untitled.png",\
"Images (*.png *.xpm *.jpg)\
;;Text files (*.txt)")
print(fileName, ok)
颜色对话框 QColorDialog
用户来选择颜色,常用的成员函数:getColor(),用于返回用户选择的颜色
col=QColorDialog.getColor() # 弹出选择颜色值的对话框
print(col.name())
字体选择对话框 QFontFDialog
可以让用户选择所显示文本的字号大小,样式和格式使用
常用的方法:getFont(),
可以从字体选择对话框中选择文本的显示字号大小样式和格式
font, ok = QFontDialog.getFont()
if ok:
print(font)
输入控件
文本编辑控件 QLineEdit 和 QTextEdit
class Main_QLineEdit_QTextEdit(QtWidgets.QWidget,Ui_Form):
def __init__(self):
super().__init__()
self.setupUi(self)
self.pushButton.clicked.connect(self.prn)
self.pushButton_2.clicked.connect(self.clear)
def settext(self):
self.lineEdit.setText('我是单行文本框')
self.textEdit.setPlainText('我是多行文本框\n我能输入多行文字')
def prn(self):
line=self.lineEdit.text()
print(line)
text=self.textEdit.toPlainText()
print(text)
def clear(self):
self.lineEdit.clear()
self.textEdit.clear()
QSpinBox、日期时间控件 QDateTime、组合框控件 QComboBox
按钮控件
命令按钮 QPushButton、单选按钮 QRadioButton、复选按钮QCheckBox
显示控件
标签Qlabel、进度条控件QProgressBar、LED显示控件QLCDNumber
QtCore.QCoreApplication.setAttribute(QtCore.Qt.AA_EnableHighDpiScaling)
#使窗体按照Qt设计显示
表格控件
QTableView 控件/ QTableWidget 控件
QTableView 用于以表格的形式显示数据
QTableView /QTableWidget 用于显示数据,其数据来源于模型对象QStandardItemMode;QTableView 中可以添加其他控件,如:按钮、组合框、进度条等
主窗口 - QMainWindow
功能:Qt中的顶层窗口称为 MainWindow,通过 QMainWindow 可以创建一个应用程序的窗口
MainWindow 的结构分为五个部分:菜单栏(Menu Bar)、工具栏(Toolbars)、停靠窗口(Dock Widgets)、状态栏(Status Bar)和中央窗口(Central Widget)。
常用成员函数
小结
GUI 编程的用法到这里就结束了,一共两篇文章,不多但是笔者觉得还是较为基础详细的,剩下的就都是代码实现啦
之前的资源绑定到这里也就可以实现啦,欢迎大家动手实践
如果有对这方面感兴趣的,想有其他了解的,欢迎评论、私信、催更
结束语
光阴知我凡心所向
却不肯等待我成长
我恳请它宽恕我的平凡寻常
别像这样匆忙拉扯我流浪