pyqt5动态添加按钮

举报
风吹稻花香 发表于 2021/06/05 22:35:41 2021/06/05
【摘要】 QMainWindow动态添加按钮,添加后需要调用show(),才可以显示出来。 self.start_file_aaa = QPushButton(self)self.start_file_aaa.setGeometry(1210, 10, 100, 30)self.start_file_aaa.setObjectName('start')self.start_file_...

QMainWindow动态添加按钮,添加后需要调用show(),才可以显示出来。


      self.start_file_aaa = QPushButton(self)
      self.start_file_aaa.setGeometry(1210, 10, 100, 30)
      self.start_file_aaa.setObjectName('start')
      self.start_file_aaa.setText('加载11')
      self.start_file_aaa.show()
  
 

 

只能动态添加工具栏按钮


      #coding=utf-8
      import sys
      from PyQt5.QtWidgets import QMainWindow, QApplication, QMenuBar, QAction, qApp, QLabel
      from PyQt5.QtGui import QIcon
      from PyQt5.QtCore import QCoreApplication
      class Example3(QMainWindow):
      def __init__(self):
       super().__init__()
       self.initUI()
      def add(self):
       print('asdfsdf')
       self.toolbar.addAction('bbbbb', self.add)
      def initUI(self):
       exitAction = QAction(QIcon('d:/1.jpg'), 'asdf', self)
       exitAction.setShortcut('Ctrl+Q')
       exitAction.triggered.connect(qApp.quit)
       self.toolbar = self.addToolBar('Exit123')
       self.toolbar.addAction(exitAction)
       self.toolbar.addAction( 'asdf',self.add)
       self.setGeometry(300, 300, 450, 450)
       self.setWindowTitle('QMainWindow的ToolBar')
       self.show()
      pass
      def main3():
       app = QApplication(sys.argv)
       example = Example3()
       sys.exit(app.exec_())
      pass
      if __name__ == '__main__':
       main3()
  
 

 

工具/版本

(1)安装环境:Windows7 64bit

(2)使用版本Python3.6

(3)PYQT5

(4)eric6

使用布局,请参考这篇文章

Pyqt 动态的添加控件

删除控件:

self.buttom.deleteLater()

关闭控件:

self.button.close()或者self.button.hide()

重新显示控件:

如果是删除,需要重新创建控件然后self.button.show()

如果是关闭,或者隐藏,self.show()

 

此处需注意:

如果多次创建相同名称的控件,操作创建的控件会显示异常,需要删除再创建

 


      # coding=utf-8
      from PyQt5.QtWidgets import QWidget, QApplication, QPushButton
      import sys
      class Example(QWidget):
      def __init__(self):
      super().__init__()
      self.initUI()
      def initUI(self):
      self.resize(550, 300)
      self.setWindowTitle('动态删除增加控件测试')
      self.CreatUI()
      def CreatUI(self):
      self.lb1 = QPushButton("按键1", self)
      self.lb1.setGeometry(100, 200, 100, 50)
      self.lb2 = QPushButton("按键1", self)
      self.lb2.setGeometry(280, 200, 100, 50)
      self.bt1 = QPushButton('删除', self)
      self.bt2 = QPushButton('新建', self)
      self.bt1.move(100, 20)
      self.bt2.move(280, 20)
      self.bt1.clicked.connect(self.deleteWidget)
      self.bt2.clicked.connect(self.addWidget)
      def deleteWidget(self):
      self.lb1.deleteLater()
      self.lb2.deleteLater()
      self.bt1.deleteLater()
      def addWidget(self):
      self.CreatUI()
      self.showWidget()
      def closeWidget(self):
      # self.lb1.close()
      # self.lb2.close()
      # self.bt1.close()
      # 或者使用hide
      self.lb1.hide()
      self.lb2.hide()
      self.bt1.hide()
      def showWidget(self):
      self.lb1.show()
      self.lb2.show()
      self.bt1.show()
      if __name__ == '__main__':
      app = QApplication(sys.argv)
      ex = Example()
      ex.show()
      sys.exit(app.exec_())
  
 
 

文章来源: blog.csdn.net,作者:网奇,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/jacke121/article/details/108652278

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。