小编pas*_*053的帖子

如何使按钮立即禁用?


大家好!我在QPushButton实例上发现了一些奇怪的东西。哦,首先,我正在使用..

  • Windows 7的
  • python 3.4
  • PyQt5

我的测试代码是...

# coding: utf-8

import sys, time
from PyQt5.QtWidgets import QWidget, QApplication, QPushButton

class Example(QWidget):
    def __init__(self):
        super().__init__()
        self.initUI()

    def initUI(self):
        self.targetBtn = QPushButton('target', self)
        self.targetBtn.move(100, 100)
        self.targetBtn.clicked.connect(self.sleep5sec)

        self.setGeometry(100, 100, 300, 300)
        self.show()

    def sleep5sec(self):
        self.targetBtn.setEnabled(False)
        time.sleep(5)

if __name__ == '__main__':
    app = QApplication(sys.argv)
    ex = Example()
    sys.exit(app.exec_())
Run Code Online (Sandbox Code Playgroud)

我想要的是..当用户按下目标按钮时,该按钮立即被禁用。但在我的代码中,sleep(5)之后禁用目标按钮。

我的代码有什么问题?

感谢您阅读我的问题!请帮忙!

python pyqt

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

如何检测对话框的关闭事件?


嗨,大家好.

我正在使用Windows 7中的python3.4,PyQt5制作GUI应用程序.

申请很有样.用户单击主窗口的按钮,弹出信息对话框.当用户单击信息对话框的关闭按钮(窗口的X按钮)时,系统会显示确认消息.这是所有的了.

这是我的代码.

# coding: utf-8

import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QPushButton, QDialog, QLabel

class mainClass(QMainWindow):
    def __init__(self):
        super().__init__()
        self.initUI()

    def initUI(self):
        openDlgBtn = QPushButton("openDlg", self)
        openDlgBtn.clicked.connect(self.openChildDialog)
        openDlgBtn.move(50, 50)

        self.setGeometry(100, 100, 200, 200)
        self.show()

    def openChildDialog(self):
        childDlg = QDialog(self)
        childDlgLabel = QLabel("Child dialog", childDlg)

        childDlg.resize(100, 100)
        childDlg.show()


if __name__ == "__main__":
    app = QApplication(sys.argv)
    mc = mainClass()
    sys.exit(app.exec_())
Run Code Online (Sandbox Code Playgroud)

结果截图是......

在此输入图像描述

在此输入图像描述

在这种情况下,我在mainClass类中添加了这些代码.

def closeEvent(self, event):
    print("X is clicked")
Run Code Online (Sandbox Code Playgroud)

此代码仅在主窗口关闭时有效.但是我想要的是closeEvent函数在关闭childDlg时有效.不是主窗口.

我该怎么办?

python pyqt pyside

4
推荐指数
1
解决办法
5021
查看次数

如何在 PyQt 中动态创建列和行?

我正在 Windows 7 中使用 python3、PyQt5 制作 GUI 桌面应用程序。

我想要做的是:

  1. 当我的应用程序运行时,它使用 QTableWidget 创建一个空表。还有四个按钮。

  2. 当用户单击第一个按钮时,空表有 2 行 4 列。

  3. 在这种情况下,如果用户单击另一个按钮,则先前的列和行将被删除,表格将获得 10 列和 20 行。

我做了一个空表,但我不知道如何动态创建列和行。

这是我的代码:

import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QWidget, QTableWidget, QPushButton

class mainClass(QMainWindow):
    def __init__(self):
        super().__init__()
        self.initUI()

    def initUI(self):
        self.tableWidget = tableManager()
        self.returnedTableWidget = self.tableWidget.makeTable(self)

        btnMaker = buttonManager()
        btnMaker.makeTestBtn(self)

        self.setGeometry(100, 100, 700, 600)
        self.show()


class buttonManager(QWidget):
    def __init__(self):
        super().__init__()

    def makeTestBtn(self, parent):
        testBtn01 = QPushButton("2 X 4", parent)
        testBtn02 = QPushButton("4 X 8", parent)
        testBtn03 = …
Run Code Online (Sandbox Code Playgroud)

python pyqt pyside

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

标签 统计

pyqt ×3

python ×3

pyside ×2