qt designer使用

  • 开始

    新建项目(eric6 项目)
    新建窗体(eric6 窗体)
    编辑界面(转到qt designer) 保存
    编译窗体(转到eric6 窗体)
    运行(查看页面效果)
  • 页面缩放效果(qt designer)

    为了窗口最大化时,布局能够按照自己的需求比例增长,最后所有布局好了后,在主窗口设置顶级布局
    主窗口空白处->右键
    选择layout -> (vertical / horizonal / grid)
    
  • 给按钮添加函数

    右击窗体(在eric6)
    生成对话框代码
    新建类名 文件名 保存
    绑定按钮动作 保存
    
    添加自定义slot(在qt designer)
    名称为绑定的按钮的那个动作名 (比如 on_pushButton_clicked())
    
    再次编译 打开生成的文件 (eric6)
    去掉from .Ui_04 的.
    在函数在下面加上
    if __name__ == '__main__':
       import sys
       from PyQt5.QtWidgets import  QApplication
       app = QApplication(sys.argv)
       window = ClassName() ## 类名,注意要和自己定义的类名一致。
       window.show()
       sys.exit(app.exec_())
  • 实时在文本框显示内容

       @pyqtSlot()
       def on_pushButton_clicked(self):
           for n in range(10): 
               str_n='File index {0}'.format(n) 
               self.textEdit.setText(str_n) 
               QApplication.processEvents()  # 引入这个
               time.sleep(1)  
  • 函数绑定定时器自动执行(Qtimer)

       def __init__(self, parent=None):
           super(Run, self).__init__(parent)
           self.setupUi(self)
            #在类中定义一个定时器,并在构造函数中设置启动及其信号和槽
           self.timer = QTimer(self)
           #设置计时间隔并启动(1000ms == 1s)
           self.timer.start(1000)  
           #计时结束调用timeout_slot()方法,注意不要加()
           self.timer.timeout.connect(self.on_pushButton_clicked) 
       
       @pyqtSlot()
       def on_pushButton_clicked(self):
           for n in range(10): 
               # str_n='File index {0}'.format(n)
               newMessage="new message"+str(n) 
               messages = list()
               messages.append( newMessage )
               self.textEdit.setText( '\n'.join(messages) )
               # self.textEdit.setText(str_n) 
               QApplication.processEvents()  # 引入这个
               # time.sleep(1) 

参考


EngineerLeo
598 声望38 粉丝

专注于云原生、AI等相关技术