Die Kernfrage ist: Wie kann ich die Fenstergroesse in (MyWindow) anpassen?
jenachdem welchen Tab ich waehle sollt die Fenstergroesse nagepasst werden. Letztentlich die das Starttab(Fenster) kleiner als die anderen Fenster. z.b.
Tab 0 : w:150px h:600px
Tab n : w:1000px h:600px
Ich arbeite mit Widget weil ich eine eigene Titelbar (main_title) habe.
Evtl. ist ja der Grundansatz schon falsch. Kann mir hier bitte jemand helfen.
Code: Alles auswählen
from main_widget import Ui_Form
from main_title import TitleWindow
from main import MainWindowApp
from worklogapp.styles import MainStyleUI
class MyWindow(QWidget, Ui_Form):
def __init__(self, parent=None):
super(MyWindow, self).__init__(parent)
self.setupUi(self)
self.tabs.currentChanged.connect(self.tab_changed_update_frm_)
def tab_changed_update_frm_(self):
tab = self.tabs.currentIndex()
if tab == 0:
self.setGeometry(50, 50, 150, 600)
else:
self.setGeometry(50, 50, 1000, 600)
if __name__ == "__main__":
QtCore.QCoreApplication.setAttribute(QtCore.Qt.AA_EnableHighDpiScaling)
app = MainStyleUI(sys.argv)
myWin = TitleWindow(widget_2_sub=MyWindow(),icon_path='images/icon.png',title='WLA')
myWin.show()
sys.exit(app.exec_())
Code: Alles auswählen
from PyQt5.QtWidgets import QMainWindow, QTabWidget, QVBoxLayout
from PyQt5.QtCore import QPropertyAnimation, QRect
from PyQt5.QtWidgets import QMainWindow, QTabWidget
from PyQt5.QtGui import QTransform, QIcon, QPixmap
from worklogapp.frm_editor_log import WindowEditLog
from worklogapp.frm_projekt_eintragen import WindowProjektEintragen
from worklogapp.frm_new_projekt_kst import WindowNewProjKST
from worklogapp.frm_web_to_workside import WindowWebBuchen
from worklogapp.frm_web_terminal import WindowWebTerminal
from worklogapp.frm_auswertung import WindowAusertung
from worklogapp.frm_detailarbeit_eintragen import WindowDetailarbeitEintragen
from worklogapp.styles import MainStyleUI
import locale
import sys
import worklogapp.settings as settings
class Ui_Form(object):
def setupUi(self, Form):
self.title = 'WLA'
self.BOX_H_V = settings.getStrValue('BOX_H_V')
self.iconcolor = settings.iconpre()
# Initialize tab screen
self.tabs = QTabWidget()
self.tabs.setTabPosition(QTabWidget.West)
self.animation = QPropertyAnimation(self, b"geometry")
# Initialize tabwidgets
self.tab_frm_projekt_eintragen = WindowProjektEintragen()
self.tab_frm_projekt_eintragen.setFocus_frm_detailarbeiten = self.setFocus_frm_detailarbeiten
self.tab_frm_new_projekt_kst = WindowNewProjKST()
self.tab_frm_new_projekt_kst.setFocus_frm_projekte = self.setFocus_frm_projekte
self.tab_frm_new_projekt_kst.setFocus_frm_detailarbeiten_proj_kst = self.setFocus_frm_detailarbeiten_proj_kst
self.tab_frm_editor_log = WindowEditLog()
self.tab_frm_web_to_workside = WindowWebBuchen()
self.tab_frm_web_terminal = WindowWebTerminal()
self.tab_frm_auswertung = WindowAusertung()
self.tab_frm_detailarbeit_eintragen = WindowDetailarbeitEintragen()
self.tab_frm_detailarbeit_eintragen.setFocus_frm_projekte = self.setFocus_frm_projekte
self.initUI()
def initUI(self):
# Add tabs
tablist = [[self.tab_frm_projekt_eintragen, self.iconcolor + "cil-home.png"],
[self.tab_frm_new_projekt_kst, self.iconcolor + "cil-plus.png"],
[self.tab_frm_editor_log, self.iconcolor + "cil-folder-open.png"],
[self.tab_frm_web_to_workside, self.iconcolor + "cil-browser.png"],
[self.tab_frm_web_terminal, self.iconcolor + "cil-touch-app.png"],
[self.tab_frm_auswertung, self.iconcolor + "cil-notes.png"],
[self.tab_frm_detailarbeit_eintragen, self.iconcolor + "cil-notes.png"]]
for x in tablist:
self.tabs.addTab(x[0], QIcon(QPixmap(settings.iconpath() + x[1]).transformed(QTransform().rotate(90))), '')
# set "tab_frm_detailarbeit_eintragen" invisible
self.tabs.setTabVisible(6, False)
self.layout = QVBoxLayout()
self.layout.addWidget(self.tabs)
self.layout.setContentsMargins(0, 0, 0, 0)
self.layout.addStretch(-1)
self.setLayout(self.layout)