小编ekh*_*oro的帖子

QMenu for PySide/PyQt中的QTableWidget

这是我的问题细节:我有这些小部件 - QMenuBar,QTableWidget和QToolbar.这是我的代码示例:

import sys
from PySide import QtGui
class Example(QtGui.QMainWindow):

  def __init__(self):
      super(Example, self).__init__()

      self.header_lbls = ['Name', 'Second Name', 'Surname', 'Birth Date', 'Phone Number', 'Skype', 'E-mail']

      self.table = QtGui.QTableWidget(10, 7)
      self.table.setHorizontalHeaderLabels(self.header_lbls)
      self.setCentralWidget(self.table)

      #ACTIONS
      self.createActions()

      #MENUBAR
      self.createMenus()

      #TOOLBAR
      self.createToolbar()

      #STATUSBAR
      self.creatStatusbar()

def contextMenuEvent(self, event):
     self.menu = QtGui.QMenu(self.table)
     self.menu.addAction(self.aboutAct)
     self.menu.exec_(QtGui.QCursor.pos())

def createActions(self):
     self.exitAct = QtGui.QAction('E&xit', self, shortcut='Ctrl+Q',
        statusTip='Exit the application', triggered=app.exit)

def createMenus(self):
    self.menubar = self.menuBar()
    self.fileMenu = self.menuBar().addMenu("&File")
    self.fileMenu.addAction(self.exitAct)

def createToolbar(self):
    self.toolbar = self.addToolBar('Toolbar')
    self.toolbar.addAction(self.settingsAct)
    self.toolbar.addSeparator()
    self.toolbar.addAction(self.exitAct)

def creatStatusbar(self):
    self.statusBar() …
Run Code Online (Sandbox Code Playgroud)

python qt contextmenu qtablewidget pyside

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

如何在PyQt中使用QRubberBand的QRubberBand?

我想通过使用QRubberBand和PyQt中的QRect在UI中选择矩形矩形来选择或激活一堆按钮.

如果有人能告诉我如何实现这个功能,我将不胜感激?

python pyqt

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

pyqt中GUI的模型视图实现出错

关闭应用程序时,以下示例代码与此错误崩溃:

QBasicTimer::start: QBasicTimer can only be used with threads started with QThread
Run Code Online (Sandbox Code Playgroud)

这是我的代码:

import sys
from PyQt4 import QtGui ,QtCore

app = QtGui.QApplication(sys.argv)

data=[]
data.append("one")
model=QtGui.QStringListModel(data)

combobox=QtGui.QComboBox()
combobox.show()
combobox.setModel(model)

sys.exit(app.exec_())
Run Code Online (Sandbox Code Playgroud)

我发现这是关于使用模型,但我不知道如何解决它.

编辑:os:win 7 64bit pyqt4

python user-interface pyqt qcombobox qstringlistmodel

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

如何在 PyQt4 中将 QImage 插入到 NxN 网格布局中?

我在 PyQt4 的网格布局中有一个 4x4 网格:

self.grid = QtGui.QGridLayout()
        pos = [(0, 0), (0, 1), (0, 2),(0, 3),
               (1, 0), (1, 1), (1, 2), (1, 3),
               (2, 0), (2, 1), (2, 2), (2, 3),
               (3, 0), (3, 1), (3, 2), (3, 3)]

        for position in pos:
            button = QtGui.QPushButton('button 1')
            self.grid.addWidget(button, position[0], position[1])

        self.setLayout(self.grid)
        self.move(300, 150)
        self.show()
Run Code Online (Sandbox Code Playgroud)

我需要的是QPushButton用包含图像的网格替换s,以便它形成一个 4X4 的图像网格。为此,我知道我将不得不使用,QImage但不确定如何使用!有人可以帮我吗?

谢谢

python user-interface image pyqt4 python-2.7

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

为什么 input() 会导致“QCoreApplication::exec: 事件循环已在运行”?

我遇到了这个 QCoreApplication 问题,其中在 QObject 在 QThread 内完成执行后调用 input() 会导致无限循环打印到控制台“QCoreApplication::exec: 事件循环已在运行”。

在代码中,我创建了一个通用worker作为QObject,将其移动到QThread中(使用QThread的认可方式,而不是子类化它),然后在通用worker内执行另一个QObject(主类)函数。只要我在执行 Master 后不调用 input() ,一切就可以正常工作。请注意,如果我直接在工作线程中执行函数(而不是主实例的函数),也会出现问题。

这是重现该问题的示例代码:

import sys
from PyQt4.QtCore import QCoreApplication, QObject, QThread, pyqtSignal, pyqtSlot


class Worker(QObject):
    """
    Generic worker.
    """
    start = pyqtSignal(str)
    finished = pyqtSignal()

    def __init__(self, function):
        QObject.__init__(self)
        self._function = function
        self.start.connect(self.run)

    def run(self):
        self._function()
        self.finished.emit()


class Master(QObject):
    """
    An object that will use the worker class.
    """
    finished = pyqtSignal()

    def __init__(self):
        QObject.__init__(self)

    @pyqtSlot()
    def do(self):
        print("Do what?")
        self.finished.emit()


def done():
    # FIXME This will …
Run Code Online (Sandbox Code Playgroud)

python multithreading input pyqt4 qcoreapplication

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

在 tkinter 标签 Python 中显示平方根符号

如何在 Tkinter 中显示平方根符号,并且数字实际上看起来像在根中?

python unicode symbols tkinter

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

通过导入PyQt5 Ui向按钮添加功能

我有一个名为guiNext.py和next.py的PyQt5 Ui,正在刷新用户界面。如何向UI按钮添加功能?这就是我所拥有的,当我运行next.py并单击HELLO按钮时,什么也没有发生。

guiNext.py:

# -*- coding: utf-8 -*-

# Form implementation generated from reading ui file 'guiNext_001.ui'
#
# Created by: PyQt5 UI code generator 5.6
#
# WARNING! All changes made in this file will be lost!

from PyQt5 import QtCore, QtGui, QtWidgets

class Ui_nextGui(object):
    def setupUi(self, nextGui):
        nextGui.setObjectName("nextGui")
        nextGui.resize(201, 111)
        nextGui.setMinimumSize(QtCore.QSize(201, 111))
        nextGui.setMaximumSize(QtCore.QSize(201, 111))
        self.centralwidget = QtWidgets.QWidget(nextGui)
        self.centralwidget.setObjectName("centralwidget")
        self.helloBtn = QtWidgets.QPushButton(self.centralwidget)
        self.helloBtn.setGeometry(QtCore.QRect(10, 10, 181, 91))
        self.helloBtn.setObjectName("helloBtn")
        nextGui.setCentralWidget(self.centralwidget)

        self.retranslateUi(nextGui)
        QtCore.QMetaObject.connectSlotsByName(nextGui)

    def retranslateUi(self, nextGui):
        _translate = QtCore.QCoreApplication.translate
        nextGui.setWindowTitle(_translate("nextGui", "MainWindow"))
        self.helloBtn.setText(_translate("nextGui", …
Run Code Online (Sandbox Code Playgroud)

python pyqt qt-designer pyqt5 pyuic

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

PyQt:如何展开 QTreeWidget 中的所有子级

没有真正的问题,我只是有一个外观问题。好吧,首先我使用 Qt Designer 创建一个表单。在此表格上我放置了一个QTreeWidget. 我们仍然在 Qt Designer 中。在 中QTreeWidget,我创建了一些条目(父母),然后我还添加了一些子条目。完成后,我保存 ui 文件,然后加载该文件 -loadUi()动态使用。在本例中我使用 PyQt4。到目前为止没有问题。

当我加载放置的表单时,QTreeWidget 我希望程序展开所有子条目。默认情况下,当我运行该程序时,我只看到父条目。当我想查看子条目时,我必须单击父条目,但我不希望这样做。

有办法解决这个问题吗?

python qt4 qtreewidget pyqt4

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

PyQt5:为 QStandardItem 设置数据

如果我构造一个QStandardItem这样的:

item = QtGui.QStandardItem('Item Name')
Run Code Online (Sandbox Code Playgroud)

当这个项目被添加到一个QStandardItemModel模型并在一个模型中查看时,QTreeView我得到一个单元格,上面写着Item Name. 但是,当我构建一个像:

item = QtGui.QStandardItem()
item.setData(123)
Run Code Online (Sandbox Code Playgroud)

我得到一个空单元格,但我仍然可以通过调用来调用数据:

print(item.data())
Run Code Online (Sandbox Code Playgroud)

我会得到号码123。如何让数字实际显示在单元格中?

python qt pyqt qtreeview qstandarditem

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

如何在 QTableWidget 中自定义排序行为

如何更改列排序行为,而不是像这样按字母顺序排序:

1、11.1、2、22.2、3 等

它将按数字排序,如下所示:

1、2、3、11.1、22.2 等

我需要仅更改特定列上的排序行为,而不是整个表上的排序行为,因为我想保持名称的正常字母顺序。

我还有一个包含文件大小的列。它们以 MB 和 GB 表示,我想对其进行排序,以便 800 MB 排在前面,1.4 GB 排在后面。它还存在字母排序的问题。有没有一种方法可以做到这一点?

python sorting pyqt qtablewidget pyqt5

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