Python——GUI界面编程(二)

小序

最近一直在等待
等待一个答案
等待一束花开

正文

上一篇以信号与槽结尾,这篇承续上言,继续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 编程的用法到这里就结束了,一共两篇文章,不多但是笔者觉得还是较为基础详细的,剩下的就都是代码实现啦
之前的资源绑定到这里也就可以实现啦,欢迎大家动手实践
如果有对这方面感兴趣的,想有其他了解的,欢迎评论、私信、催更

结束语

光阴知我凡心所向

却不肯等待我成长

我恳请它宽恕我的平凡寻常

别像这样匆忙拉扯我流浪

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

fancymeng

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值