class MainWidget(QWidget): def __init__(self, parent=None): super(MainWidget, self).__init__(parent) # self.resize(1000, 800) # self.splitter = QSplitter(Qt.Horizontal, self) # self.splitter.addWidget(QTextEdit(self.splitter)) self._setup_ui() def _setup_ui(self): self.resize(1000, 800) self.splitter = QSplitter(Qt.Horizontal, self) self.splitter.resize(1000, 800) self.splitter.addWidget(QWidget(self.splitter))
def initUI(self): topLeft = QFrame(self); topLeft.setFrameShape(QFrame.StyledPanel); topRight = QFrame(self); topRight.setFrameShape(QFrame.StyledPanel); bottom = QFrame(self); bottom.setFrameShape(QFrame.StyledPanel); horizontalSplitter = QSplitter(Qt.Horizontal); horizontalSplitter.addWidget(topLeft); horizontalSplitter.addWidget(topRight); horizontalSplitter.resize(100, 100); verticalSplitter = QSplitter(Qt.Vertical); verticalSplitter.addWidget(horizontalSplitter); verticalSplitter.addWidget(bottom); boxLayout = QHBoxLayout(self); boxLayout.addWidget(verticalSplitter); self.setLayout(boxLayout); ck = QCheckBox("修改名称", bottom); ck.move(20, 20); ck.toggle(); ck.stateChanged.connect(self.changeTitle); btn = QPushButton("选择", topLeft); btn.setCheckable(True); btn.move(20, 60); btn.clicked[bool].connect(self.changeColor); self.show();
self.endRemoveRows() return True if __name__ == '__main__': app = QApplication(sys.argv) app.setStyle("cleanlooks") red = QColor(255, 0, 0) green = QColor(0, 255, 0) blue = QColor(0, 0, 255) model = CustomPalette([red, green, blue]) splitter = QSplitter() splitter.resize(1200, 300) list_view = QListView(splitter) tree_view = QTreeView(splitter) table_view = QTableView(splitter) combo_box = QComboBox(splitter) list_view.setModel(model) tree_view.setModel(model) table_view.setModel(model) combo_box.setModel(model) splitter.show() app.exec_()
import sys from PyQt5.QtCore import Qt from PyQt5.QtWidgets import QApplication, QSplitter, QTextEdit app = QApplication(sys.argv) #splitter = QSplitter(orientation=Qt.Horizontal) splitter = QSplitter(orientation=Qt.Vertical) widget1 = QTextEdit() widget2 = QTextEdit() widget3 = QTextEdit() splitter.addWidget(widget1) splitter.addWidget(widget2) splitter.addWidget(widget3) splitter.resize(400, 400) splitter.show() # The mainloop of the application. The event handling starts from this point. # The exec_() method has an underscore. It is because the exec is a Python keyword. And thus, exec_() was used instead. exit_code = app.exec_() # The sys.exit() method ensures a clean exit. # The environment will be informed, how the application ended. sys.exit(exit_code)
def setupTab4(self, tab4): """Layout widgets for preview panel""" scrollContainer = QVBoxLayout() scrollArea = QScrollArea() scrollArea.setWidgetResizable(True) mainWidget = QWidget() layout = QVBoxLayout() mainWidget.setLayout(layout) mainWidget.setMinimumSize(QSize(420, 500)) scrollArea.setWidget(mainWidget) scrollContainer.addWidget(scrollArea) tab4.setLayout(scrollContainer) group1 = QGroupBox(self.tr("QHBoxLayout")) # , "QHBoxLayout布局")) hbox = QHBoxLayout() for i in range(1, 5): hbox.addWidget(QPushButton(self.tr("Button") + str(i))) group1.setLayout(hbox) layout.addWidget(group1) group2 = QGroupBox(self.tr("QGridLayout")) # , "QGridLayout布局")) group2.setCheckable(True) hbox = QGridLayout() hbox.addWidget(QLabel(self.tr("First line:")), 0, 0) # "第一行数据:")) hbox.addWidget(QLabel(self.tr("Second line:")), 1, 0) hbox.addWidget(QLabel(self.tr("Third line:")), 2, 0) hbox.addWidget(QLineEdit(), 0, 1) hbox.addWidget(QLineEdit("0"), 1, 1) inputText = QLineEdit() inputText.setPlaceholderText(self.tr("please input")) # "请输入:")) hbox.addWidget(inputText, 2, 1) text = QTextEdit( self.tr("This is a textedit, span 3 rows and 2 columns.") ) # "这是一个文本框,在QGridLayout中占三行两列。")) hbox.addWidget(text, 0, 2, 3, 2) group2.setLayout(hbox) layout.addWidget(group2) group3 = QGroupBox(self.tr("QFormLayout")) # "QFormLayout布局")) group3.setCheckable(True) hbox = QFormLayout() hbox.addRow(self.tr("please input data"), QLineEdit()) # "请输入数据:") hbox.addRow(QLabel(self.tr("please select data")), QSpinBox()) # "请选择数据:" box = QComboBox() box.addItem("Item1") box.addItem("Item2") box.addItem("Item3") hbox.addRow(self.tr("Please select item"), box) # , "请选择选项:" group3.setLayout(hbox) layout.addWidget(group3) group4 = QGroupBox("Spliter MDI Dock") group4.setCheckable(True) hbox = QHBoxLayout() group4.setLayout(hbox) layout.addWidget(group4) splitter1 = QSplitter(Qt.Horizontal) splitter2 = QSplitter(Qt.Vertical) splitter1.resize(420, 350) splitter2.resize(350, 350) splitter2.setStretchFactor(0, 1) mdi = QMdiArea() mdi.addSubWindow(QWidget()) mdi.addSubWindow(QWidget()) mdi.cascadeSubWindows() w1 = QWidget() w2 = QWidget() d1 = QDockWidget("dock1", w1) d2 = QDockWidget("dock2", w1) d1.setAllowedAreas(Qt.LeftDockWidgetArea) d1.setFeatures(QDockWidget.AllDockWidgetFeatures | QDockWidget.DockWidgetVerticalTitleBar) d2.setFeatures(QDockWidget.DockWidgetVerticalTitleBar) d3 = QDockWidget("dock3", w2) d3.setAllowedAreas(Qt.LeftDockWidgetArea | Qt.TopDockWidgetArea) w1.resize(120, 120) splitter2.addWidget(w1) splitter2.addWidget(w2) splitter1.addWidget(mdi) splitter1.addWidget(splitter2) hbox.addWidget(splitter1) layout.addStretch(1)
def initWin(self): iptGrid = QGridLayout() title = Text("TSP", (255, 0, 0), 16, "center") pic = QPixmap("C:\\tsp.png") picLbl = QLabel() picLbl.setPixmap(pic) picLbl.setScaledContents(True) titleLayout = QVBoxLayout() titleLayout.addWidget(title) titleLayout.addWidget(picLbl) titleFrame = QFrame() titleFrame.setFrameShape(QFrame.StyledPanel) titleFrame.setAutoFillBackground(True) p5 = titleFrame.palette() p5.setColor(titleFrame.backgroundRole(), QColor(255, 255, 255)) titleFrame.setPalette(p5) titleFrame.setLayout(titleLayout) iptTitle = Text("Program Input", (255, 0, 0), 12, "center") iptTxt1 = QLabel("Cities No:") iptTxt1.setFont(QFont("Decorative", 12)) iptTxt2 = QLabel("start:") iptTxt2.setFont(QFont("Decorative", 12)) self.iptEdt1 = QLineEdit() self.iptEdt1.textChanged[str].connect(self.get_input) self.iptEdt2 = QLineEdit() self.iptEdt2.textChanged[str].connect(self.get_input) self.iptBtn1 = QPushButton("Build") self.iptBtn1.clicked.connect(self.bulid_map) self.iptBtn2 = QPushButton("Rturn") self.iptBtn2.clicked.connect(self.get_initial) iptH = QHBoxLayout() iptH.addWidget(self.iptBtn1) iptH.addWidget(self.iptBtn2) iptGrid.addWidget(iptTitle, 1, 0, 1, 5) iptGrid.addWidget(iptTxt1, 2, 0) iptGrid.addWidget(self.iptEdt1, 2, 1) iptGrid.addWidget(iptTxt2, 3, 0) iptGrid.addWidget(self.iptEdt2, 3, 1) iptGrid.setVerticalSpacing(10) iptV = QVBoxLayout() iptV.addLayout(iptGrid) iptV.addLayout(iptH) iptFrame = QFrame() iptFrame.setAutoFillBackground(True) p6 = iptFrame.palette() p6.setColor(iptFrame.backgroundRole(), QColor(220, 225, 255)) iptFrame.setPalette(p6) iptFrame.setFrameShape(QFrame.StyledPanel) iptFrame.setLayout(iptV) srgGrid = QGridLayout() #srgGrid.setVerticalSpacing(10) srgTitle = Text("Algorithms", (255, 0, 0), 12, "center") self.srgBtn1 = QPushButton("Genetic") self.srgBtn1.clicked.connect(self.run_algorithm) self.srgBtn2 = QPushButton("Simulated") self.srgBtn2.clicked.connect(self.run_algorithm) self.srgBtn3 = QPushButton("Tabu") self.srgBtn3.clicked.connect(self.run_algorithm) self.srgBtn4 = QPushButton("reset") self.srgBtn4.clicked.connect(self.reset) srgGrid.addWidget(srgTitle, 1, 0, 1, 6) srgGrid.addWidget(self.srgBtn1, 2, 1, 2, 4) srgGrid.addWidget(self.srgBtn2, 3, 1, 3, 4) srgGrid.addWidget(self.srgBtn3, 4, 1, 4, 4) srgGrid.addWidget(self.srgBtn4, 5, 1, 5, 4) srgFrame = QFrame() srgFrame.setFrameShape(QFrame.StyledPanel) srgFrame.setAutoFillBackground(True) p7 = srgFrame.palette() p7.setColor(srgFrame.backgroundRole(), QColor(255, 255, 255)) srgFrame.setPalette(p7) srgFrame.setLayout(srgGrid) otpGrid = QGridLayout() otpTitle = Text("Program Output", (255, 0, 0), 12, "center") otpTxt1 = QLabel("The Cost") otpTxt1.setFont(QFont("Decorative", 12)) self.lcd1 = QLCDNumber() otpGrid.addWidget(otpTitle, 1, 0, 1, 2) otpGrid.addWidget(otpTxt1, 2, 0) otpGrid.addWidget(self.lcd1, 2, 1) otpFrame = QFrame() otpFrame.setFrameShape(QFrame.StyledPanel) otpFrame.setAutoFillBackground(True) p8 = otpFrame.palette() p8.setColor(otpFrame.backgroundRole(), QColor(220, 225, 255)) otpFrame.setPalette(p8) otpFrame.setLayout(otpGrid) splitter1 = QSplitter(Qt.Vertical) splitter1.addWidget(titleFrame) splitter1.addWidget(iptFrame) splitter1.setSizes([240, 135]) splitter2 = QSplitter(Qt.Vertical) splitter2.addWidget(srgFrame) splitter2.addWidget(otpFrame) splitter2.setSizes([200, 92]) splitter3 = QSplitter(Qt.Vertical) splitter3.addWidget(splitter1) splitter3.addWidget(splitter2) splitter3.setSizes([382, 291]) splitter3.resize(260, 685) splitter3.move(1100, 5) splitter3.setParent(self) splitter3.setAutoFillBackground(True) p3 = splitter3.palette() p3.setColor(splitter3.backgroundRole(), QColor(255, 255, 255)) splitter3.setPalette(p3) self.mapFrame = QFrame() self.mapFrame.setFrameShape(QFrame.StyledPanel) self.mapFrame.move(5, 5) self.mapFrame.resize(1090, 685) self.mapFrame.setParent(self) self.setAutoFillBackground(True) p2 = self.palette() p2.setColor(self.backgroundRole(), QColor(0, 0, 0)) self.setPalette(p2) self.mapFrame.setParent(self) self.hint = Text("Click the bulid button to bulid a random map", (255, 0, 0), 23, "center") self.hint.move(230, 100) self.hint.setParent(self) self.setWindowTitle("TSP") self.width = QDesktopWidget().availableGeometry().width() self.height = QDesktopWidget().availableGeometry().height() - 40 self.resize(self.width, self.height) self.show() self.nodes = {} self.points = {} self.flag = True
import sys from PyQt5.QtCore import QStringListModel from PyQt5.QtWidgets import QApplication from PyQt5.QtWidgets import QListView from PyQt5.QtWidgets import QSplitter from PyQt5.QtWidgets import QTreeView if __name__ == '__main__': app = QApplication(sys.argv) splitter = QSplitter() model = QStringListModel(['items[{}]'.format(i) for i in range(10)]) list_view = QListView(splitter) tree_view = QTreeView(splitter) list_view.setModel(model) tree_view.setModel(model) splitter.resize(800, 600) splitter.show() app.exec_()
def openWindow(self): self.setWindowIcon(QIcon('caen.png')) sub_box = QHBoxLayout(self) # Q1 splitter1 = QSplitter(Qt.Horizontal) Q1 = QLabel("Is the problem with this computer?") self.A1 = QComboBox(self) self.A1.addItem("Yes") self.A1.addItem("No") Q1.resize(self.width()/2, 50) self.A1.resize(self.width()/2, 50) splitter1.addWidget(Q1) splitter1.addWidget(self.A1) splitter1.resize(self.width(), 50) # Q2 splitter2 = QSplitter(Qt.Horizontal) Q2 = QLabel("Please describe this issue:") Q2.resize(self.width()/2,200) self.A2 = QPlainTextEdit(self) self.A2.resize(self.width()/2,200) splitter2.addWidget(Q2) splitter2.addWidget(self.A2) splitter2.resize(self.width(),200) # Q3 splitter3 = QSplitter(Qt.Horizontal) Q3 = QLabel("Attach any useful information:\n(Files have to be under 10MB \nincluding the screenshots)") A3 = QPushButton("Select files") A3.clicked.connect(self.getfile) Q3.resize(self.width()/2, 50) A3.resize(self.width()/2, 50) splitter3.addWidget(Q3) splitter3.addWidget(A3) splitter3.resize(self.width(), 50) # Q4 splitter4 = QSplitter(Qt.Horizontal) Q4 = QLabel("Press this button to take a screenshot \nof the entire screen.\nOnly the two screenshots are sent.") A4 = QPushButton("Take a screenshot") A4.clicked.connect(self.showScreenshotWindow) Q4.resize(self.width()/2, 50) A4.resize(self.width()/2, 50) splitter4.addWidget(Q4) splitter4.addWidget(A4) splitter4.resize(self.width(), 50) # Submit splitter5 = QSplitter(Qt.Horizontal) submit = QPushButton("Submit Report") submit.clicked.connect(self.submitReport) splitter5.addWidget(submit) splitter5.resize(self.width(), 50) splitter = QSplitter(Qt.Vertical) splitter.addWidget(splitter1) splitter.addWidget(splitter2) splitter.addWidget(splitter3) splitter.addWidget(splitter4) splitter.addWidget(splitter5) sub_box.addWidget(splitter) self.setGeometry(300,300,600,400) self.setWindowTitle("Report Window")