赞
踩
目录
1、PyQt是一个创建GUI应用程序的工具包。它是Python编程语言和Qt库的成功融合。
2、官网手册:http://https://doc.qt.io/qtforpython-5/PySide2/QtWidgets/index.html
3、注意使用面对对象方式进行开发,以便后续的更改与开发。
(1)界面与逻辑分离
(2)事件与设计分离
- import sys
- from PyQt5.QtWidgets import QMainWindow,QApplication
- from PyQt5.QtGui import QIcon
-
- #Class A(B)既A继承B
- class FirstMainWin(QMainWindow):
- def __init__(self):
- super(FirstMainWin,self).__init__()
-
- # 设置主窗口的标题
- self.setWindowTitle('第一个主窗口应用')
-
- # 设置窗口的尺寸
- self.resize(400,300)
-
- self.status = self.statusBar()#实例化一个状态控件
-
- self.status.showMessage('只存在5秒的消息',5000)#设置存在时间为5秒
-
- if __name__ == '__main__':
- app = QApplication(sys.argv)
-
- app.setWindowIcon(QIcon('./images/Dragon.ico'))#设置窗体图标
- main = FirstMainWin()
- main.show()
-
- sys.exit(app.exec_())
(1)__name__=='__main__'的含义是从改程序进入时运行以下代码,这是python的机种,当代码为主程序运行时,此时该程序__name__的值则为'__main__',否则则为它本身的名称。
(2)这边的类 使用的为继承关系,有对__init__进行重写,所以使用super(FirstMainWin,self).__init__()来继承原先类的属性,这是python2版本的写法,python3也可使用super().__init__()
(3)如果使用Jupter等工具进行程序编写的话,请使用 app.exec_() del app进行程序的退出,以免内核断开
- # QDesktopWidget
- import sys
- from PyQt5.QtWidgets import QDesktopWidget,QMainWindow,QApplication
- from PyQt5.QtGui import QIcon
-
- class CenterForm(QMainWindow):
- def __init__(self):
- super(CenterForm,self).__init__()
-
- # 设置主窗口的标题
- self.setWindowTitle('让窗口居中')
-
- # 设置窗口的尺寸
- self.resize(400,300)
-
- def center(self):#需要实例化调用必须加Self参数
- # 获取屏幕坐标系
- screen = QDesktopWidget().screenGeometry()
- # 获取窗口坐标系
- size = self.geometry()
- newLeft = (screen.width() - size.width()) / 2#Left居中处理
- newTop = (screen.height() - size.height()) / 2#Top居中处理
- self.move(newLeft,newTop)
-
-
- if __name__ == '__main__':
- app = QApplication(sys.argv)
- main = CenterForm()
- main.show()
-
- app.exec_()
- del app
需要了解屏幕坐标体系的Y轴方向与平时坐标轴的Y轴方向是相反的
- import sys
- from PyQt5.QtWidgets import QHBoxLayout,QMainWindow,QApplication,QPushButton,QWidget
- class QuitApplication(QMainWindow):
- def __init__(self):
- super(QuitApplication,self).__init__()
- mainFrame=QWidget()
- # mainFrame.setLayout(layout)
- # mainFrame.setLayout(self.button1)
- self.setCentralWidget(mainFrame)
-
- self.resize(300,120)
- self.setWindowTitle('退出应用程序')
-
- self.button1=QPushButton('输出属性',mainFrame)
- self.button1.resize(120,50)
- self.button1.move(30,30)
- self.button1.clicked.connect(self.onClick_Button)
- self.initUI()
- # layout=QHBoxLayout()
- # layout.addWidget(self.button1)
-
- def initUI(self):
- self.setWindowIcon(QIcon('3D.ico'))
-
- def onClick_Button(self):
- print('------------------')
- print('窗体横坐标 = %d'%self.x())#窗体横坐标 250
- print('窗体纵坐标 = %d'%self.y())#窗体纵坐标 200
- print('工作区宽度 = %d'%self.width())#工作区宽度 300
- print('工作区高度 = %d'%self.height())#工作区高度 240
-
- print('------------------')
- print('工作区域横坐标 = %d'%self.geometry().x())#工作区域横坐标 258
- print('工作区域纵坐标 = %d'%self.geometry().y())#工作区域纵坐标 230
- print('工作区域宽度 = %d'%self.geometry().width())#工作区域宽度 300
- print('工作区域高度 = %d'%self.geometry().height())#工作区域高度 240
-
- print('------------------')
- print('窗体横坐标 = %d'%self.frameGeometry().x())#窗体横坐标 250
- print('窗体纵坐标 = %d'%self.frameGeometry().y())#窗体纵坐标 200
- print('窗体宽度 = %d'%self.frameGeometry().width())#窗体宽度 316
- print('窗体高度 = %d'%self.frameGeometry().height())#窗体高度 278
-
- if __name__ == '__main__':
- app = QApplication(sys.argv)
- main = QuitApplication()
- main.show()
- app.exec_()
- del app
- import sys
- from PyQt5.QtWidgets import QMainWindow,QApplication
- from PyQt5.QtGui import QIcon
-
- class IconForm(QMainWindow):
- def __init__(self):
- super(IconForm,self).__init__()
- self.initUI()
-
- def initUI(self):
-
- self.setGeometry(300,300,250,250)
- # 设置主窗口的标题
- self.setWindowTitle('设置窗口图标')
- # 设置窗口图标
- self.setWindowIcon(QIcon('3D.ico'))
-
-
- if __name__ == '__main__':
- app = QApplication(sys.argv)
- app.setWindowIcon(QIcon('3D.ico'))
- main = IconForm()
- main.show()
- app.exec_()
- del app
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。