小编ekh*_*oro的帖子

PyQt - QFileDialog - 直接浏览到一个文件夹?

有没有办法直接浏览到使用QFileDialog的文件夹?

这意味着,不是在导航到目标文件夹时双击每个文件夹,只需在某处输入路径或使用Mac OS X上的Finder中的热键(Shift + Command + G).

谢谢!

编辑:(我的代码)

    filter = "Wav File (*.wav)"
    self._audio_file = QtGui.QFileDialog.getOpenFileName(self, "Audio File",
                                                        "/myfolder/folder", filter)
    self._audio_file = str(self._audio_file)
Run Code Online (Sandbox Code Playgroud)

python qt pyqt qfiledialog

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

当模型是 pandas dataframe 时使 QTableView 可编辑

在我的 gui 文件中,我创建了一个 QTableView,如下所示(这是 Qt Designer 自动生成的部分):

self.pnl_results = QtGui.QTableView(self.tab_3)
font = QtGui.QFont()
font.setPointSize(7)
self.pnl_results.setFont(font)
self.pnl_results.setFrameShape(QtGui.QFrame.StyledPanel)
self.pnl_results.setFrameShadow(QtGui.QFrame.Sunken)
self.pnl_results.setEditTriggers(QtGui.QAbstractItemView.AllEditTriggers)
self.pnl_results.setShowGrid(True)
self.pnl_results.setSortingEnabled(True)
self.pnl_results.setCornerButtonEnabled(True)
self.pnl_results.setObjectName("pnl_results")
Run Code Online (Sandbox Code Playgroud)

然后,我定义一个模型,使我能够将 pandas 数据框链接到 QTableView:

class PandasModel(QtCore.QAbstractTableModel):
    """
    Class to populate a table view with a pandas dataframe
    """

    def __init__(self, data, parent=None):
        QtCore.QAbstractTableModel.__init__(self, parent)
        self._data = data

    def rowCount(self, parent=None):
        return len(self._data.values)

    def columnCount(self, parent=None):
        return self._data.columns.size

    def data(self, index, role=QtCore.Qt.DisplayRole):
        if index.isValid():
            if role == QtCore.Qt.DisplayRole:
                return str(self._data.values[index.row()][index.column()])
        return None

    def headerData(self, col, orientation, role):
        if orientation …
Run Code Online (Sandbox Code Playgroud)

python qt qtableview pyside pandas

3
推荐指数
1
解决办法
3923
查看次数

使用Anaconda将.ui文件转换为.py文件

嗨,也许这是一个愚蠢的问题,但我找不到错误或我该怎么做才能做到这一点......

我有一个.ui文件,我的GUI是在QT Designer上设计的,我希望将它与Python一起使用.我已经安装了Anaconda 2(Python 2.7)和Python 3.6,但是当我在pyuic.py所在的文件夹中运行命令时(C:\ Python36\Lib\site-packages\PyQT5\uic)

python pyuic.py -o mainwindow.ui 
Run Code Online (Sandbox Code Playgroud)

我有以下错误

Traceback (most recent call last):
File "pyuic.py", line 28, in <module>
from .driver import Driver
ModuleNotFoundError: No module named '__main__.driver'; '__main__' is not a package
Run Code Online (Sandbox Code Playgroud)

任何人都可以告诉我为什么以及如何解决它?

提前致谢!

python pyqt qt-designer anaconda pyuic

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

PyQt:如何从 QThread 获取 UI 数据

我有以下代码,但它抱怨我无法从我的线程访问 UI 数据。在下面的示例代码中,访问该userInputString值以便线程可以运行的最佳方法是什么?

self.nameField 是一个 PyQt QLineEdit。

QObject::setParent:无法设置父级,新父级在不同的线程中
QPixmap:在 GUI 线程之外使用像素图是不安全的
QWidget::repaint:检测到递归重绘

import myUI

class MainUIClass(QtGui.QMainWindow, myUI.Ui_MainWindow):
    def __init__(self, parent=None):
        super(MainUIClass, self).__init__(parent)
        self.setupUi(self)

        self.startbutton.clicked.connect(self.do_work)

        self.workerThread = WorkerThread()
        self.connect(self.workerThread, SIGNAL("myThreading()"), self.myThreading, Qt.DirectConnection)

    def do_work(self):
        self.userInputString = self.nameField.Text()
        self.workerThread.start()

    def myThreading(self):

        if userInputString is not None:
            #Do something

class WorkerThread(QThread):
    def __init__(self, parent=None):
        super(WorkerThread, self).__init__(parent)

    def run(self):
        self.emit(SIGNAL("myThreading()"))

if __name__ == '__main__':
    a = QtGui.QApplication(sys.argv)
    app = MainUIClass()
    app.show()
    a.exec_()
Run Code Online (Sandbox Code Playgroud)

python multithreading pyqt signals-slots qthread

3
推荐指数
1
解决办法
2891
查看次数

对字符串python的Httpresponse

我正在尝试显示一个网页,但由于它不会将对象视为字符串,因此无法正确显示换行符(显示\n)。我怎样才能正确地使结果成为一个字符串,因为这似乎不起作用。谢谢!

result = urllib.request.urlopen(requesturl).read()
return str(result)
Run Code Online (Sandbox Code Playgroud)

python string httpresponse python-3.5

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

PyQt:不均等地划分QHBoxLayout中小部件占用的区域

我想要一个如下的布局:

布局

我正在使用QHBoxLayout并添加两个小部件 - 但这两个小部件都获得了 50% 的可用空间,而不是我需要的 25% / 75% 布局。

如何不均匀地分配小部件的区域?

python layout user-interface pyqt

3
推荐指数
1
解决办法
2287
查看次数

将范围滑动器小部件移植到PyQt5

我目前需要一个范围滑块(可以在其中设置最小值和最大值的滑块)。我发现了两个相关的问题:Qt中的Range滑块(QSlider中的两个句柄)以及为什么RangeSlider在QtQuick中可用,而不是作为标准Widget提供,但它们都不是用python3编写的,而且我对C ++不太熟悉。

我发现了这个完美的github工具https://github.com/rsgalloway/qrangeslider,但不幸的是它是为PyQt4编写的,而我正在使用PyQt5。

我打算用PyQt5绑定重新格式化这个github源,但是在这样做之前,我想知道是否有人做过,这样我可以节省时间?或者,如果有人有不同的解决方案,我欢迎您提出建议。

python qt pyqt slider pyqt5

3
推荐指数
2
解决办法
2431
查看次数

PyQt中的样式表伪状态语法

我在脚本中漫游着各种PushButton,并且正在加载外部CSS文件来处理软件中大量的窗口小部件。我已经到了必须按类搜寻按钮并尝试定义某些属性的地步。对按钮的通用调用,例如:QFrame:QPushButton #btnName {css:blah; }正在工作,但是伪状态无效:特别是将鼠标悬停并按下。这是我正在尝试的:

--THIS WORKS
QFrame:QPushButton #btnName { css: blah; }

--THESE DO NOT
QFrame:QPushButton:hover #btnName { css: hoverstuff; }
QFrame:QPushButton:pressed #btnName { css: pressedstuff; }
Run Code Online (Sandbox Code Playgroud)

工作表中有很多CSS样式;这些线的“上方”可能是问题吗?对于伪状态,我的语法错误吗?是什么赋予了!?提前致谢。

python pyqt qtstylesheets

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

如何在 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
查看次数

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

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

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

有办法解决这个问题吗?

python qt4 qtreewidget pyqt4

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