pyqt5(入门二,基础窗口)

主要内容都在代码注释里了,比较方便

下面是一个小窗口
import sys
from PyQt5.QtWidgets import QApplication, QWidget  #这里引入了PyQt5.QtWidgets模块,这个模块包含了基本的组件。

if __name__ == '__main__':

    app = QApplication(sys.argv)#每一个pyqt5应用都必须创建一个应用对象,sys.argv是一组命令行参数的列表

    w = QWidget() #赋值,没有父级的构造器被称为窗口(Windows)
    w.resize(250, 150)#改变窗口大小,宽、高
    w.move(300, 300)#把控件放置在屏幕坐标的位置,屏幕坐标系的原点是屏幕左上角
    w.setWindowTitle('Simple')#窗口标题,标题栏展示
    w.show() #能让控件在桌面上显示出来。

    sys.exit(app.exec_())#进入了应用主循环中,当调用exit()方法或直接销毁主控件,主循环就会结束。
窗口图标

也可以基于类class来实现,下面是实现带窗口图标的代码,该部分主要是定义一个图标的方法,创建一个gui,由主程序调用,下面三个方法都继承自QWidget类

    def initUI(self):
        self.setGeometry(300, 300, 300, 220)#把窗口方法屏幕上并设置窗口大小,分别代表屏幕坐标X/Y,窗口宽、高
        self.setWindowTitle('Icon') #窗口标题
        self.setWindowIcon(QIcon('web.png'))        #添加图标,先创建一个对象,然后接受一个路径作为参数显示图标

        self.show()

效果如下图:


image.png
提示框

这里用的代码是重复了上一部分。所以注释只有提示框的一部分

    def initUI(self):

        QToolTip.setFont(QFont('SansSerif', 10)) #创建提示框,里面分别是字体和大小

        self.setToolTip('This is a <b>QWidget</b> widget') #调用setTool可以使用富文本格式的内容

        btn = QPushButton('Button', self)  #创建一个按钮
        btn.setToolTip('This is a <b>QPushButton</b> widget') #使用提示框
        btn.resize(btn.sizeHint()) #调整按钮大小,sizeHint是默认的按钮大小
        btn.move(50, 50)       #此刻按钮的位置是相对于窗口的坐标

        self.setGeometry(300, 300, 300, 200)
        self.setWindowTitle('Tooltips')    
        self.show()
关闭窗口

本例使用的是QPushButton组件类。
关闭窗口最直接的方式是点击标题栏的×,但是现在是通过程序关闭。

    def initUI(self):               

        qbtn = QPushButton('Quit', self) #创建点击就退出的按钮,并创建一个对象,第一个参数是按钮的文本
        qbtn.clicked.connect(QCoreApplication.instance().quit)#点击后与quit函数绑定。
        qbtn.resize(qbtn.sizeHint())
        qbtn.move(50, 50)       

        self.setGeometry(300, 300, 250, 150)
        self.setWindowTitle('Quit button')    
        self.show()

点击后即会退出程序

消息盒子message

主要控件是Qmessagebox
主要用法就是创建一个

reply =QMessageBox.question(self,‘message’,“are you sure to quit?”,QMessageBox.Yes| 
            QMessageBox.No,QMessageBox.No)#默认是NO时间,在最后
  if reply == QMessageBox.Yes:
            event.accept()#执行关闭
   else:
            event.ignore()     #忽略关闭
窗口居中

没啥子用的东西。。就是一个center

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 继续写,这样冷的天,晚上看月亮,想起古代的诗歌。 作为一个中文系毕业的人,喜欢过诗意人生,饮酒 、出门、...
    Lan_9e0f阅读 234评论 0 1
  • 去武汉大医院检查?我肯定是去不了,因为我晕车,下了车不知道东西南北,我绝对不敢一个人外出。 我的生活圈子向来简单,...
    lizihua李子阅读 678评论 19 14
  • (首发于 夏知凉同学) 01 那年,南京一如既往的热。在操场军训的我们,像一只只在蒸笼里的馒头,蒸的个个大汗淋漓。...
    少女心莉齐阅读 261评论 0 2