小编Ron*_*nny的帖子

PyQt4 GUI中的标签不会随着每个FOR循环循环而更新

我有一个问题,我希望使用GUI从python程序运行几个命令行函数.我不知道我的问题是否特定于PyQt4,或者是否与我对python代码的错误使用有关.

我想做的是在我的GUI上有一个标签更改其文本值,以通知用户正在执行哪个命令.然而,当我使用for循环运行多个命令时,出现了我的问题.我希望标签能够在每个循环中更新自身,但是,程序不会在每个循环中更新GUI标签,而是只在整个 for循环完成后才自动更新,并且只显示最后执行的命令.

我在我的GUI环境中使用PyQt4.我已经确定标签的文本变量确实正在用每个循环进行更新,但实际上并没有在GUI中直观地显示.

我有办法强制标签更新吗?我在循环中尝试了update()repaint()方法,但它们没有任何区别.

我真的很感激任何帮助.谢谢.

罗尼.

这是我正在使用的代码:

# -*- coding: utf-8 -*-
import sys, os
from PyQt4 import QtGui, QtCore
Gui = QtGui
Core = QtCore

# ================================================== CREATE WINDOW OBJECT CLASS
class Win(Gui.QWidget):
    def __init__(self, parent = None):
        Gui.QWidget.__init__(self, parent)

        # --------------------------------------------------- SETUP PLAY BUTTON
        self.but1 = Gui.QPushButton("Run Commands",self)
        self.but1.setGeometry(10,10, 200, 100)

        # -------------------------------------------------------- SETUP LABELS
        self.label1 = Gui.QLabel("No Commands running", self)
        self.label1.move(10, 120)

        # ------------------------------------------------------- SETUP ACTIONS …
Run Code Online (Sandbox Code Playgroud)

python label for-loop pyqt4

8
推荐指数
1
解决办法
2万
查看次数

pyQt4:QWidget子类没有响应新的setStyleSheet()背景颜色

我遇到了PyQt4的问题.我想在窗口中创建一个新的小部件,我希望这个小部件具有自定义颜色.

当我创建QWidget类的子类并实例化它时,我无法通过setStyleSheet()函数更改其背景颜色.

当我实例化一个新的QWidget对象时,我在更改其背景颜色方面没有任何问题.但我不想要一个普通的QWidget对象.我想创建自己的QWidget子类.

当我创建QPushButton的子类时,我也可以使用setStyleSheet()函数更改其背景颜色.

控制台窗口中没有错误消息或警告,它只是拒绝正常工作而没有任何关于原因的指示.

所以我想知道的是,为什么我可以改变窗口小部件的背景颜色,如果我只是创建一个QWidget对象,或QPushButton的子类,但不是当我创建QWidget的子类时.那么我怎样才能改变作为QWidget子类的对象的背景颜色?

它可能是我正在使用的python或PyQt版本特有的东西吗?这是库中的错误吗?或者我编写代码的方式有些缺陷?

我使用的是python 2.6.4和PyQt4

以下是导致我遇到麻烦的代码示例.窗口内有三个小部件,一个在另一个之下.父窗口小部件的背景颜色为绿色.顶部小部件设置为红色,中间的小部件是QWidget的子类,它应该是蓝色的,但它看起来是不可见的,因为它出于某种原因呈现父窗口的颜色.底部小部件是QPushButton的子类,是白色的.

import sys
from PyQt4 import QtGui, QtCore


################################################################################
#--------------------------------------------------------- CUSTOM WIDGET CLASS 1
class CustomWidget(QtGui.QWidget):
    def __init__(self, parent):
        QtGui.QWidget.__init__(self, parent)
        # some custom properties and functions will follow


################################################################################
#--------------------------------------------------------- CUSTOM WIDGET CLASS 2
class CustomWidget2(QtGui.QPushButton):
    def __init__(self, parent):
        QtGui.QPushButton.__init__(self, parent)
        # some custom properties and functions will follow


################################################################################
#----------------------------------------------------------- PARENT WIDGET CLASS
class Parent(QtGui.QWidget):
    def __init__(self, parent=None):
        #---------------------------------------------------------- SETUP WINDOW
        QtGui.QWidget.__init__(self, parent)
        self.resize(500, 340) …
Run Code Online (Sandbox Code Playgroud)

python pyqt stylesheet qwidget pyqt4

7
推荐指数
1
解决办法
4656
查看次数

标签 统计

pyqt4 ×2

python ×2

for-loop ×1

label ×1

pyqt ×1

qwidget ×1

stylesheet ×1