我对PyQt4非常陌生,这个问题可能很简单,但我尝试过许多不同的东西,但没有什么效果。我正试着用PyQt4做一个标签。
import sys
from PyQt4 import QtCore
from PyQt4 import QtGui
class Display(QtGui.QWidget):
def __init__(self):
super(Display, self).__init__()
self.time = Time() #Another class in the program
self.ShowFullScreen()
self.setStyleSheet("background-color: black;")
self.show()
self.MainDisplay()
def MainDisplay(self):
self.timedisplay = QtGui.QLabel(self)
self.timedisplay.setStyleSheet("font: 30pt Helvetica; color: white;")
self.timedisplay.setText(time.GetTime())
self.show()
if __name__ == "__main__":
app = QtGui.QApplication(sys.argv)
GUI = Display()
sys.exit(app.exec())标签不显示,也没有错误消息。我做错了什么?
发布于 2017-09-16 00:24:00
我使用的是PySide,而不是Qt,但它们应该是99.99%的兼容。主要问题是调用show()函数,这会使窗口可见。您有两个电话到show。第一次调用它时,您还没有调用MainDisplay,因此还没有创建QLabel。第二次调用show时,窗口已经可见,所以没有任何变化。
如果您首先创建小部件并调用show一次,那么在最后,它将以您想要的方式工作。有了这段代码,标签就会出现。
还有其他问题:
您将不得不按照使用它们的方式更改import语句。
我没有你的时间课,所以我只是在标签上写了一段简单的文字。
函数ShowFullScreen应该是showFullScreen。
在QtApp中运行事件循环的函数名为exec_而不是exec。
import sys
from PySide import QtCore
from PySide import QtGui
class Display(QtGui.QWidget):
def __init__(self):
super(Display, self).__init__()
self.setStyleSheet("background-color: black;")
self.MainDisplay()
self.showFullScreen()
def MainDisplay(self):
self.timedisplay = QtGui.QLabel(self)
self.timedisplay.setStyleSheet("font: 30pt Helvetica; color: white;")
self.timedisplay.setText("What time is it now?")
if __name__ == "__main__":
app = QtGui.QApplication(sys.argv)
GUI = Display()
sys.exit(app.exec_())https://stackoverflow.com/questions/46248558
复制相似问题