问题描述
我是 Python 和编程的新手,一直在尝试创建 GUI。我正在尝试设置一个窗口标志,以便我的主窗口始终位于顶部。我曾尝试在中央小部件上设置窗口标志,但出现属性错误。
下面是我的代码:
import os
import csv
from PyQt6 import QtCore,QtGui,QtWidgets
import time
import sys
StoreID = os.environ.get("Store")
class Ui_MainWindow(object):
def __init__(self,hostName,MainWindow):
self.hostNames = hostName
self.MainWindow = MainWindow
def setupUi(self,MainWindow):
MainWindow.setobjectName("MainWindow")
MainWindow.resize(1052,776)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Policy.Fixed,QtWidgets.QSizePolicy.Policy.Fixed)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(MainWindow.sizePolicy().hasHeightForWidth())
MainWindow.setSizePolicy(sizePolicy)
MainWindow.setMinimumSize(QtCore.QSize(1052,776))
MainWindow.setMaximumSize(QtCore.QSize(1052,776))
icon = QtGui.QIcon()
icon.addpixmap(QtGui.Qpixmap("../../../Pictures/VF logo.png"),QtGui.QIcon.Mode.normal,QtGui.QIcon.State.Off)
MainWindow.setwindowIcon(icon)
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setobjectName("centralwidget")
**self.centralwidget.setwindowFlags(QtCore.Qt.Window | QtCore.Qt.CustomizeWindowHint | QtCore.Qt.WindowStaysOnTopHint)**
self.label = QtWidgets.QLabel(self.centralwidget)
self.label.setGeometry(QtCore.QRect(320,60,401,301))
self.label.setText("")
self.label.setpixmap(QtGui.Qpixmap("../../../Pictures/VF logo.png"))
self.label.setScaledContents(True)
self.label.setobjectName("label")
self.label_2 = QtWidgets.QLabel(self.centralwidget)
self.label_2.setGeometry(QtCore.QRect(300,300,471,81))
self.label_2.setobjectName("label_2")
self.frame = QtWidgets.qframe(self.centralwidget)
self.frame.setGeometry(QtCore.QRect(-70,-90,1200,1200))
self.frame.setMinimumSize(QtCore.QSize(1200,1200))
self.frame.setStyleSheet("background-color: rgb(159,159,159);")
self.frame.setFrameShape(QtWidgets.qframe.Shape.StyledPanel)
self.frame.setFrameShadow(QtWidgets.qframe.Shadow.Raised)
self.frame.setobjectName("frame")
self.listWidget = QtWidgets.QListWidget(self.frame)
self.listWidget.setGeometry(QtCore.QRect(520,480,150,251))
self.listWidget.setMinimumSize(QtCore.QSize(150,10))
self.listWidget.setMaximumSize(QtCore.QSize(300,16777215))
font = QtGui.QFont()
font.setPointSize(18)
self.listWidget.setFont(font)
self.listWidget.setStyleSheet("")
self.listWidget.setFrameShape(QtWidgets.qframe.Shape.Box)
self.listWidget.setFrameShadow(QtWidgets.qframe.Shadow.Raised)
self.listWidget.setlinewidth(2)
self.listWidget.setobjectName("listWidget")
self.createlistitems()
self.frame.raise_()
self.label.raise_()
self.label_2.raise_()
MainWindow.setCentralWidget(self.centralwidget)
self.menubar = QtWidgets.QMenuBar(MainWindow)
self.menubar.setGeometry(QtCore.QRect(0,1052,22))
self.menubar.setobjectName("menubar")
MainWindow.setMenuBar(self.menubar)
self.statusbar = QtWidgets.QStatusBar(MainWindow)
self.statusbar.setobjectName("statusbar")
MainWindow.setStatusBar(self.statusbar)
self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
def retranslateUi(self,MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setwindowTitle(_translate("MainWindow","Message"))
self.label_2.setText(_translate("MainWindow","<html><head/><body><p><span style=\" font-size:22pt; font-weight:700; color:#ffffff;\">Please Turn the Below Asset(s) On</span></p></body></html>"))
__sortingEnabled = self.listWidget.isSortingEnabled()
self.listWidget.setSortingEnabled(False)
self.listWidget.setSortingEnabled(__sortingEnabled)
def createlistitems(self):
for Host in self.hostNames:
item = QtWidgets.QListWidgetItem()
item.setText(Host)
self.listWidget.addItem(item)
def ReadCSVReport():
with open('Offline_Report4_test.csv') as csv_file:
csv_reader = csv.DictReader(csv_file)
OfflineHosts= []
line_count = 0
for row in csv_reader:
if line_count == 0:
line_count += 1
else:
if row["Status"] =="Offline" and row["StoreID"] ==StoreID:
print(row["Hostname"])
OfflineHosts.append(row['Hostname'])
line_count += 0
return OfflineHosts
def myExitHandler():
time.sleep(1)
x()
def x():
while True:
with open('Operator.csv') as csv_file:
csv_reader = csv.reader(csv_file)
for row in csv_reader:
if row[0] == "1":
main()
else:
break
def main():
import sys
app = QtWidgets.QApplication(sys.argv)
app.aboutToQuit.connect(myExitHandler)
MainWindow = QtWidgets.QMainWindow()
OfflineHosts = ReadCSVReport()
ui = Ui_MainWindow(OfflineHosts,MainWindow)
ui.setupUi(MainWindow)
MainWindow.show()
sys.exit(app.exec())
if __name__ == "__main__":
x()
我收到的错误是:
Traceback (most recent call last):
File "c:\Test5.py",line 213,in <module>
x()
File "c:\Test5.py",line 197,in x
main()
File "c:\Test5.py",line 208,in main
ui.setupUi(MainWindow)
File "c:\Test5.py",line 105,in setupUi
self.centralwidget.setwindowFlags(QtCore.Qt.Window | QtCore.Qt.CustomizeWindowHint | QtCore.Qt.WindowStaysOnTopHint)
AttributeError: type object 'Qt' has no attribute 'Window'
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)