ich versuche eine Oberflaeche mit TabWidgets zu gestalten, wo alle Elemente auf den Pixel genau angepasst sein sollen.
Die Oberflaeche besteht aus 60 Elementen.
Allerdings soll nach Ausfuehren das GUI noch bearbeitbar bleiben, was ich mit pyqtSlot und einem Worker realisieren moechte.
Bei Erstellung kann ich allerdings weder die Tabs noch die Elemente in Position und Groeße aendern. Sie sind immer maximal.
Das geht bei 60 Elementen aber nicht...
Wie kann ich das aendern?
Hier natuerlich mein Beispiel.
Vielen Dank im Voraus fuer die Hilfe
Code: Alles auswählen
#!/usr/bin/env python
# -*- encoding: utf-8 -*-
import sys
from PyQt5.QtCore import pyqtSlot
from PyQt5 import QtCore as qtc
from PyQt5 import QtWidgets as qtw
class Worker(qtc.QRunnable):
def __init__(self, fn, *args, **kwargs):
super(Worker, self).__init__()
self.fn = fn
self.args = args
self.kwargs = kwargs
@pyqtSlot()
def run(self):
self.fn(*self.args, **self.kwargs)
class Ui_MainWindow(qtw.QWidget):
def __init__(self, master=None):
super().__init__(master)
self.setupUI()
self.threadpool = qtc.QThreadPool()
def setupUI(self):
self.resize(400, 400)
self.setStyleSheet("background-color: rgb(241, 231, 201)")
self.setWindowTitle("Record Courses")
self.beenden_btn = qtw.QPushButton(self)
self.beenden_btn.setGeometry(qtc.QRect(200, 370, 80, 30))
self.beenden_btn.setText("Start")
self.layout = qtw.QVBoxLayout(self)
# Initialize Tab
self.TabC = self.createTabs()
# Create Edit in Tab1
self.Page1.layout = qtw.QVBoxLayout(self)
self.Edit = qtw.QLineEdit()
self.Edit.setGeometry(qtc.QRect(30, 70, 75, 23)) # Keine Auswirkung
self.Page1.layout.addWidget(self.Edit)
self.Page1.setLayout(self.Page1.layout)
# Add Tab to widget
self.layout.addWidget(self.TabC)
self.setLayout(self.layout)
def createTabs(self):
self.Page1 = qtw.QWidget()
self.TabWidget = qtw.QTabWidget()
self.TabWidget.resize(400, 350) # Keine Auswirkung, der Button soll immer sichtbar sein
self.TabWidget.addTab(self.Page1, "Page1")
return self.TabWidget
if __name__ == "__main__":
app = qtw.QApplication(sys.argv)
MainWindow = Ui_MainWindow()
MainWindow.show()
sys.exit(app.exec_())