PyQt4 标签不显示
PyQt4 Label not showing
我是 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())
标签未显示,也没有错误消息。我做错了什么?
我使用 PySide 而不是 Qt,但它们应该是 99.99% 兼容的。主要问题是您调用了 show()
函数,这使得 window 可见。您有两次调用 show
。第一次调用时,您还没有调用 MainDisplay
,所以 QLabel
还没有创建。第二次调用 show
时,window 已经 可见,因此没有任何变化。
如果您先创建小部件并调用 show
一次,最后它将按您想要的方式工作。使用此代码,标签显示出来。
还有其他问题:
您必须将导入语句改回原样。
我没有你的时间class,所以我只是在标签中写了一段简单的文字。
函数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_())
我是 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())
标签未显示,也没有错误消息。我做错了什么?
我使用 PySide 而不是 Qt,但它们应该是 99.99% 兼容的。主要问题是您调用了 show()
函数,这使得 window 可见。您有两次调用 show
。第一次调用时,您还没有调用 MainDisplay
,所以 QLabel
还没有创建。第二次调用 show
时,window 已经 可见,因此没有任何变化。
如果您先创建小部件并调用 show
一次,最后它将按您想要的方式工作。使用此代码,标签显示出来。
还有其他问题:
您必须将导入语句改回原样。
我没有你的时间class,所以我只是在标签中写了一段简单的文字。
函数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_())