У меня есть главное окно в полноэкранном режиме, когда пользователь нажимает кнопку в этом окне, я хочу открыть другое окно поверх основного. Но то, что я получаю, когда пишу self.showNormal()
(чтобы показать всплывающее окно), это еще одно полноэкранное окно. Я также попробовал self.show()
, так что и это, и self.showNormal()
приводят к тому же поведению, которое вы получите от self.showFullScreen()
Вот код для нового окна, которое я хочу отобразить:
import pyqtgraph as pg
from PyQt5 import Qt, uic
class profileWindow(Qt.QWidget):
def __init__ (self, profileName, mappedModels):
Qt.QWidget.__init__(self)
uic.loadUi('profile.ui', self)
self.showNormal() # self.show() behaves similarly by opening a maximized window
def exitWindow(self):
self.close()
ОБНОВЛЕНИЕ: , поэтому я попытался показать главный экран как оконный с self.showMaximized()
вместо self.showFullScreen()
, и все работает, как и ожидалось, при открытии нового окна, оно всплывающее окно, как я хочу. Так что проблема возникает только при отображении главного окна в полноэкранном режиме.
Что я получаю:
Что я хочу:
profile.ui xml:
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>Form</class>
<widget class="QWidget" name="Form">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>330</width>
<height>689</height>
</rect>
</property>
<property name="windowTitle">
<string>Form</string>
</property>
<widget class="QLabel" name="profilePic">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>331</width>
<height>301</height>
</rect>
</property>
<property name="text">
<string/>
</property>
</widget>
<widget class="QLabel" name="profileName">
<property name="geometry">
<rect>
<x>135</x>
<y>310</y>
<width>60</width>
<height>16</height>
</rect>
</property>
<property name="text">
<string/>
</property>
</widget>
<widget class="QWidget" name="verticalLayoutWidget">
<property name="geometry">
<rect>
<x>0</x>
<y>340</y>
<width>331</width>
<height>301</height>
</rect>
</property>
<layout class="QVBoxLayout" name="resultGraph"/>
</widget>
<widget class="QPushButton" name="doneBtn">
<property name="geometry">
<rect>
<x>115</x>
<y>650</y>
<width>101</width>
<height>32</height>
</rect>
</property>
<property name="text">
<string>Done</string>
</property>
</widget>
</widget>
<resources/>
<connections/>
</ui>
на данный момент я использую действительно хакерский способ, которым я действительно не хочу пользоваться:
self.showMinimized()
time.sleep(1/2)
self.showNormal()
... и я знаю, я также съеживаюсь, когда читаю эти 3 строки.