问答

PyQt5中布局内的控件如何充满布局?

作者:admin 2021-06-16 我要评论

如图,PyQt5中布局内的控件如何充满布局? class CodeVersionDlg(QDialog): def __init__(self, parent=None): super(CodeVersionDlg, self).__init__(parent) w...

在说正事之前,我要推荐一个福利:你还在原价购买阿里云、腾讯云、华为云服务器吗?那太亏啦!来这里,新购、升级、续费都打折,能够为您省60%的钱呢!2核4G企业级云服务器低至69元/年,点击进去看看吧>>>)

image.png
如图,PyQt5中布局内的控件如何充满布局?

class CodeVersionDlg(QDialog):

def __init__(self, parent=None):
    super(CodeVersionDlg, self).__init__(parent)
    windowFlag  = Qt.Dialog;
    windowFlag |= Qt.WindowMinimizeButtonHint;
    windowFlag |= Qt.WindowMaximizeButtonHint;
    windowFlag |= Qt.WindowCloseButtonHint;
    self.setWindowFlags(windowFlag);

    self.CodetxtPlainTextEdit = QPlainTextEdit()
    self.CodetxtPlainTextEdit.setContextMenuPolicy(Qt.CustomContextMenu)
    self.CodetxtPlainTextEdit.customContextMenuRequested[QPoint].connect(self.generateMenu4)
    self.CodeversiontxtPlainTextEdit = QPlainTextEdit()
    self.tableViewnew=QTableView()
    self.model=QStandardItemModel(6,4)
    self.tableViewnew.setModel(self.model)
    self.tableViewnew.setColumnWidth(0,350)
    
    tabWidget = QTabWidget()
    CodetxtWidget = QWidget()
    CodetxtLayout = QGridLayout()
    CodetxtLayout.addWidget(self.CodetxtPlainTextEdit, 1, 0)
    CodetxtLayout.addWidget(self.tableViewnew, 2, 0)
    CodetxtWidget.setLayout(CodetxtLayout)
    tabWidget.addTab(CodetxtWidget, "A")
  
    self.model2=QStandardItemModel(4,3)
    #设置水平方向四个头标签文本内容
    self.model2.setHorizontalHeaderLabels(['old version','newer version','append'])
            
    self.btn3 = QPushButton("append newer")
    #实例化表格视图,设置模型为自定义的模型
    self.tableViewnew2=QTableView()
    self.tableViewnew2.setModel(self.model2)
    self.tableViewnew2.setColumnWidth(0,32)
    self.tableViewnew2.setColumnWidth(1,500)
    self.tableViewnew2.setColumnWidth(2,500)
    #self.tableViewnew2.setSectionResizeMode(QHeaderView.Stretch)
    self.tableViewnew2.setContextMenuPolicy(Qt.CustomContextMenu)
     
    newWidget = QWidget()
    newLayout = QGridLayout()
    newLayout.addWidget(self.tableViewnew2, 1, 0)
    
    newLayout.addWidget(self.btn3)
    newWidget.setLayout(newLayout)
    tabWidget.addTab(newWidget, "B")
    
    self.btn4 = QPushButton("modify older text")
    self.btn5 = QPushButton("err code text2clip")
    self.btn5.setToolTip('拷贝到剪切板')
    
    self.tableViewOld=QTableView()
    self.model3=QStandardItemModel(3,3)
    self.tableViewOld.setModel(self.model3)
    self.tableViewOld.setColumnWidth(0,32)
    self.tableViewOld.setColumnWidth(1,500)
    self.tableViewOld.setColumnWidth(2,500)
    self.tableViewOld.setContextMenuPolicy(Qt.CustomContextMenu)
    
    checkWidget = QWidget()
    checkLayout = QGridLayout()
    checkLayout.addWidget(self.tableViewOld, 1, 0,1,2)
    checkLayout.addWidget(self.btn4,2,0)
    checkLayout.addWidget(self.btn5,2,1)
    
    checkWidget.setLayout(checkLayout)
    tabWidget.addTab(checkWidget, "C")
    
    self.tableViewIn=QTableView()
    self.model4=QStandardItemModel(3,1)
    self.tableViewIn.setModel(self.model4)
    self.tableViewIn.setColumnWidth(0,500)
    
    inWidget = QWidget()
    inLayout = QGridLayout()
    inLayout.addWidget(self.tableViewIn, 1, 0,1,2)
    inWidget.setLayout(inLayout)
    tabWidget.addTab(inWidget, "D")
    
    layout = QVBoxLayout()
    layout.addWidget(tabWidget)
    self.setLayout(layout)
    
    self.tableViewIn.setContextMenuPolicy(Qt.CustomContextMenu)

    self.codeSumLabel = QLabel("found:")
    self.codeSumLabel2 = QLabel("found:")
    self.btn1 = QPushButton("Version Check")
    #layout.addWidget(self.btn1)
   
    self.btn2 = QPushButton('quit')
    #self.btn2.clicked.connect(QApplication.instance().quit)
    self.btn2.clicked.connect(self.myquit)
    #layout.addWidget(self.btn2)
  

    hbox = QHBoxLayout()
    hbox.addStretch(1)
    hbox.addWidget(self.codeSumLabel)
    hbox.addWidget(self.codeSumLabel2)
    hbox.addWidget(self.btn1)
    hbox.addWidget(self.btn2)
    
    layout.addStretch(0)
    layout.addStretch(1)
    layout.addLayout(hbox)       
    self.setLayout(layout)
    
    self.resize(1100,650)
    print(self.geometry())
    

版权声明:本文转载自网络,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本站转载出于传播更多优秀技术知识之目的,如有侵权请联系QQ/微信:153890879删除

相关文章
  • PyQt5中布局内的控件如何充满布局?

    PyQt5中布局内的控件如何充满布局?

  • 有没有办法将一个内存表的所有行重组一

    有没有办法将一个内存表的所有行重组一

  • 用hexo推送博客github出现的问题

    用hexo推送博客github出现的问题

  • 微信小程序,前端收不到后端传过来的值

    微信小程序,前端收不到后端传过来的值

腾讯云代理商
海外云服务器