pyqt QGridLayout示例

举报
风吹稻花香 发表于 2021/06/05 01:45:06 2021/06/05
【摘要】 原文:pyqt布局管理器QGridLayout简单示例 import sys from PyQt5.QtWidgets import * class Example(QWidget): def __init__(self): super(Example,self).__init__() self.grid = QGridLayout() self.initUI() self...

原文:pyqt布局管理器QGridLayout简单示例


  
  1. import sys
  2. from PyQt5.QtWidgets import *
  3. class Example(QWidget):
  4. def __init__(self):
  5. super(Example,self).__init__()
  6. self.grid = QGridLayout()
  7. self.initUI()
  8. self.setWindowTitle('grid layout')
  9. def initUI(self):
  10. while self.grid.count():
  11. item = self.grid.takeAt(0)
  12. widget = item.widget()
  13. # if widget has some id attributes you need to
  14. # save in a list to maintain order, you can do that here
  15. # i.e.: aList.append(widget.someId)
  16. widget.deleteLater()
  17. names=['Cls','Bck','','Close','7','8','9','/','4',
  18. '5','6','*','1','2,','3','-','0','.','=','+']
  19. j=0
  20. pos=[(0,0),(0,1),(0,2),(0,3),
  21. (1,0),(1,1),(1,2),(1,3),
  22. (2,0),(2,1),(2,2),(2,3),
  23. (3,0),(3,1),(3,2),(3,3),
  24. (4,0),(4,1),(4,2),(4,3)]
  25. for iterm in names:
  26. button=QPushButton(iterm)
  27. if j==2:
  28. change=QPushButton(u'文本编辑器')
  29. self.grid.addWidget(change,0,2)
  30. change.clicked.connect(self.otherUI)
  31. else:
  32. self.grid.addWidget(button,pos[j][0],pos[j][1])
  33. j=j+1
  34. self.setLayout(self.grid)
  35. self.resize(300,300)
  36. def otherUI(self):
  37. while self.grid.count():
  38. item = self.grid.takeAt(0)
  39. widget = item.widget()
  40. # if widget has some id attributes you need to
  41. # save in a list to maintain order, you can do that here
  42. # i.e.: aList.append(widget.someId)
  43. widget.deleteLater()
  44. title=QLabel('Title')
  45. author=QLabel('Author')
  46. review=QLabel('Review')
  47. titleEdit=QLineEdit()
  48. authorEdit=QLineEdit()
  49. reviewEdit=QTextEdit()
  50. self.grid.setSpacing(10)
  51. self.grid.addWidget(title,1,0)
  52. #addWidget(self, a0: QWidget, row: int, column: int, rowSpan: int, columnSpan: int
  53. self.grid.addWidget(titleEdit,1,1,1,2)
  54. self.grid.addWidget(author,2,0)
  55. self.grid.addWidget(authorEdit,2,1)
  56. self.grid.addWidget(review,3,0)
  57. self.grid.addWidget(reviewEdit,3,1,5,1)
  58. back=QPushButton(u'返回')
  59. back.clicked.connect(self.initUI)
  60. self.grid.addWidget(back,6,2)
  61. self.setLayout(self.grid)
  62. self.resize(300,300)
  63. app=QApplication(sys.argv)
  64. ex=Example()
  65. ex.show()
  66. sys.exit(app.exec_())

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

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

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

评论(0

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

全部回复

上滑加载中

设置昵称

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

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

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