Je veux mettre une boîte de groupe, qui contient beaucoup de cases à cocher et de boutons, dans un GridLayout dans PyQt4. De plus, je veux avoir un bouton en dehors du groupe (mais dans la même disposition) qui peut exécuter certaines fonctions en cliquant dessus une fois la ou les case (s) cochée (s) dans la case.Comment mettre un GroupBox dans un GridLayout? PyQt4
En outre, je voudrais avoir une barre de défilement (peut-être un QScrollArea ferait?) À la boîte de groupe en raison de je pourrais ajouter plus de boutons à l'avenir. Une chose à noter est qu'il y a plusieurs onglets dans cette disposition/fenêtre (je ne suis pas sûr du terme). Et tout le groupbox/bouton/etc devrait tout dans l'onglet 1.
J'ai lu quelques articles qui ont les mêmes situations, mais aucun d'entre eux fournissent une réponse appropriée ... Si quelqu'un sait comment résoudre le problème , pls faites le moi savoir. Apprécié!
EDIT: Mes codes sont comme ci-dessous. Comme vous pouvez le voir, j'ai une boîte de groupe en bas. Ce que je veux faire est de mettre la boîte de groupe sur le dessus avec toutes les cases à cocher/boutons, sauf un bouton Exécuter en bas à l'extérieur de la boîte de groupe. Et ceux-ci devraient tous se produire que dans l'onglet 1.
import PyQt4
from PyQt4 import QtGui, QtCore
from PyQt4.QtCore import *
from PyQt4.QtGui import *
import os, sys
class Page1 (QTabWidget):
def __init__(self, parent=None):
super(Page1, self).__init__(parent)
self.tab1 = QWidget()
self.tab2 = QWidget()
self.tab3 = QWidget()
self.addTab(self.tab1, "Tab1")
self.addTab(self.tab2, "Tab2")
self.addTab(self.tab3, "Tab3")
self.tab1_initUI()
self.tab2_initUI()
self.tab3_initUI()
def tab1_initUI(self):
btn1a = QPushButton('A1')
btn1a.resize(btn1a.sizeHint())
btn1b = QPushButton('A2')
btn1b.resize(btn1b.sizeHint())
btn2a = QPushButton('B1')
btn2a.resize(btn2a.sizeHint())
btn2b = QPushButton('B2')
btn2b.resize(btn2b.sizeHint())
btn3a = QPushButton('C1')
btn3a.resize(btn3a.sizeHint())
btn3b = QPushButton('C2')
btn3b.resize(btn3b.sizeHint())
btn4a = QPushButton('D1', self)
btn4a.resize(btn4a.sizeHint())
btn4b =QPushButton('D2', self)
btn4b.resize(btn4b.sizeHint())
btn5a = QPushButton('E1', self)
btn5a.resize(btn5a.sizeHint())
btn5b = QPushButton('E2', self)
btn5b.resize(btn5b.sizeHint())
self.checkBox1 = QtGui.QCheckBox('1', self)
self.checkBox2 = QtGui.QCheckBox('2', self)
self.checkBox3 = QtGui.QCheckBox('3', self)
self.checkBox4 = QtGui.QCheckBox('4', self)
self.checkBox5 = QtGui.QCheckBox('5', self)
btnRun = QPushButton('Run', self)
btnRun.resize(btnRun.sizeHint())
grid = QtGui.QGridLayout()
grid.addWidget(self.checkBox1, 1, 0)
grid.addWidget(btn1a, 1, 1)
grid.addWidget(btn1b, 1, 2)
grid.addWidget(self.checkBox2, 2, 0)
grid.addWidget(btn2a, 2, 1)
grid.addWidget(btn2b, 2, 2)
grid.addWidget(self.checkBox3, 3, 0)
grid.addWidget(btn3a, 3, 1)
grid.addWidget(btn3b, 3, 2)
grid.addWidget(self.checkBox4, 4, 0)
grid.addWidget(btn4a, 4, 1)
grid.addWidget(btn4b, 4, 2)
grid.addWidget(self.checkBox5, 5, 0)
grid.addWidget(btn5a, 5, 1)
grid.addWidget(btn5b, 5, 2)
grid.addWidget(btnRun, 6, 0, 1, 3)
groupbox = QtGui.QGroupBox(self)
hbox = QtGui.QHBoxLayout()
grid2= QtGui.QGridLayout()
hbox.addLayout(grid2)
groupbox.setLayout(hbox)
scroll = QtGui.QScrollArea()
scroll.setWidget(groupbox)
scroll.setWidgetResizable(True)
grid.addWidget(groupbox,7,0,1,3)
self.tab1.setLayout(grid)
def tab2_initUI(self):
grid = QtGui.QGridLayout()
self.tab2.setLayout(grid)
def tab3_initUI(self):
grid = QtGui.QGridLayout()
self.tab3.setLayout(grid)
class MainWindow(QMainWindow):
def __init__(self, parent=None):
super(MainWindow, self).__init__(parent)
self.setGeometry(300, 200, 600, 370)
self.startPage1()
def startPage1(self):
x = Page1(self)
self.setWindowTitle("Auto Benchmark")
self.setCentralWidget(x)
self.show()
def main():
app = QApplication(sys.argv)
main = MainWindow()
main.show()
sys.exit(app.exec_())
if __name__ == '__main__':
main()
suivant, je ne comprends pas, vous pourriez mieux expliquer ce que vous voulez ou placer une image qui montre ce que vous voulez. – eyllanesc
@eyllanesc Pls voir mon commentaire 'EDIT' ci-dessus – ryan9025
Je pense que je comprends, mais ce serait génial de nous donner une image de ce que vous voulez. : D – eyllanesc