当前位置:   article > 正文

一、PyQt5实现Python界面设计_QtWidgets (第一个窗体界面)_pyqt5界面设计

pyqt5界面设计

目录

一、介绍

二、实例部分

(1)第一个主窗口应用

(2)让窗口居中显示

 (3)窗体的基本属性(窗体属性,工作区属性)

 (4)设置窗体图标

一、介绍

1、PyQt是一个创建GUI应用程序的工具包。它是Python编程语言和Qt库的成功融合。

2、官网手册:http://​https://doc.qt.io/qtforpython-5/PySide2/QtWidgets/index.html​

3、注意使用面对对象方式进行开发,以便后续的更改与开发。

(1)界面与逻辑分离

(2)事件与设计分离

二、实例部分

(1)第一个主窗口应用

  1. import sys
  2. from PyQt5.QtWidgets import QMainWindow,QApplication
  3. from PyQt5.QtGui import QIcon
  4. #Class A(B)既A继承B
  5. class FirstMainWin(QMainWindow):
  6. def __init__(self):
  7. super(FirstMainWin,self).__init__()
  8. # 设置主窗口的标题
  9. self.setWindowTitle('第一个主窗口应用')
  10. # 设置窗口的尺寸
  11. self.resize(400,300)
  12. self.status = self.statusBar()#实例化一个状态控件
  13. self.status.showMessage('只存在5秒的消息',5000)#设置存在时间为5秒
  14. if __name__ == '__main__':
  15. app = QApplication(sys.argv)
  16. app.setWindowIcon(QIcon('./images/Dragon.ico'))#设置窗体图标
  17. main = FirstMainWin()
  18. main.show()
  19. 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进行程序的退出,以免内核断开

 

(2)让窗口居中显示

  1. # QDesktopWidget
  2. import sys
  3. from PyQt5.QtWidgets import QDesktopWidget,QMainWindow,QApplication
  4. from PyQt5.QtGui import QIcon
  5. class CenterForm(QMainWindow):
  6. def __init__(self):
  7. super(CenterForm,self).__init__()
  8. # 设置主窗口的标题
  9. self.setWindowTitle('让窗口居中')
  10. # 设置窗口的尺寸
  11. self.resize(400,300)
  12. def center(self):#需要实例化调用必须加Self参数
  13. # 获取屏幕坐标系
  14. screen = QDesktopWidget().screenGeometry()
  15. # 获取窗口坐标系
  16. size = self.geometry()
  17. newLeft = (screen.width() - size.width()) / 2#Left居中处理
  18. newTop = (screen.height() - size.height()) / 2#Top居中处理
  19. self.move(newLeft,newTop)
  20. if __name__ == '__main__':
  21. app = QApplication(sys.argv)
  22. main = CenterForm()
  23. main.show()
  24. app.exec_()
  25. del app

需要了解屏幕坐标体系的Y轴方向与平时坐标轴的Y轴方向是相反的

 (3)窗体的基本属性(窗体属性,工作区属性)

  1. import sys
  2. from PyQt5.QtWidgets import QHBoxLayout,QMainWindow,QApplication,QPushButton,QWidget
  3. class QuitApplication(QMainWindow):
  4. def __init__(self):
  5. super(QuitApplication,self).__init__()
  6. mainFrame=QWidget()
  7. # mainFrame.setLayout(layout)
  8. # mainFrame.setLayout(self.button1)
  9. self.setCentralWidget(mainFrame)
  10. self.resize(300,120)
  11. self.setWindowTitle('退出应用程序')
  12. self.button1=QPushButton('输出属性',mainFrame)
  13. self.button1.resize(120,50)
  14. self.button1.move(30,30)
  15. self.button1.clicked.connect(self.onClick_Button)
  16. self.initUI()
  17. # layout=QHBoxLayout()
  18. # layout.addWidget(self.button1)
  19. def initUI(self):
  20. self.setWindowIcon(QIcon('3D.ico'))
  21. def onClick_Button(self):
  22. print('------------------')
  23. print('窗体横坐标 = %d'%self.x())#窗体横坐标 250
  24. print('窗体纵坐标 = %d'%self.y())#窗体纵坐标 200
  25. print('工作区宽度 = %d'%self.width())#工作区宽度 300
  26. print('工作区高度 = %d'%self.height())#工作区高度 240
  27. print('------------------')
  28. print('工作区域横坐标 = %d'%self.geometry().x())#工作区域横坐标 258
  29. print('工作区域纵坐标 = %d'%self.geometry().y())#工作区域纵坐标 230
  30. print('工作区域宽度 = %d'%self.geometry().width())#工作区域宽度 300
  31. print('工作区域高度 = %d'%self.geometry().height())#工作区域高度 240
  32. print('------------------')
  33. print('窗体横坐标 = %d'%self.frameGeometry().x())#窗体横坐标 250
  34. print('窗体纵坐标 = %d'%self.frameGeometry().y())#窗体纵坐标 200
  35. print('窗体宽度 = %d'%self.frameGeometry().width())#窗体宽度 316
  36. print('窗体高度 = %d'%self.frameGeometry().height())#窗体高度 278
  37. if __name__ == '__main__':
  38. app = QApplication(sys.argv)
  39. main = QuitApplication()
  40. main.show()
  41. app.exec_()
  42. del app

 

 (4)设置窗体图标

  1. import sys
  2. from PyQt5.QtWidgets import QMainWindow,QApplication
  3. from PyQt5.QtGui import QIcon
  4. class IconForm(QMainWindow):
  5. def __init__(self):
  6. super(IconForm,self).__init__()
  7. self.initUI()
  8. def initUI(self):
  9. self.setGeometry(300,300,250,250)
  10. # 设置主窗口的标题
  11. self.setWindowTitle('设置窗口图标')
  12. # 设置窗口图标
  13. self.setWindowIcon(QIcon('3D.ico'))
  14. if __name__ == '__main__':
  15. app = QApplication(sys.argv)
  16. app.setWindowIcon(QIcon('3D.ico'))
  17. main = IconForm()
  18. main.show()
  19. app.exec_()
  20. del app

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/315883
推荐阅读
相关标签
  

闽ICP备14008679号