有没有办法直接浏览到使用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) 在我的 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) 嗨,也许这是一个愚蠢的问题,但我找不到错误或我该怎么做才能做到这一点......
我有一个.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)
任何人都可以告诉我为什么以及如何解决它?
提前致谢!
我有以下代码,但它抱怨我无法从我的线程访问 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) 我正在尝试显示一个网页,但由于它不会将对象视为字符串,因此无法正确显示换行符(显示\n)。我怎样才能正确地使结果成为一个字符串,因为这似乎不起作用。谢谢!
result = urllib.request.urlopen(requesturl).read()
return str(result)
Run Code Online (Sandbox Code Playgroud) 我想要一个如下的布局:

我正在使用QHBoxLayout并添加两个小部件 - 但这两个小部件都获得了 50% 的可用空间,而不是我需要的 25% / 75% 布局。
如何不均匀地分配小部件的区域?
我目前需要一个范围滑块(可以在其中设置最小值和最大值的滑块)。我发现了两个相关的问题:Qt中的Range滑块(QSlider中的两个句柄)以及为什么RangeSlider在QtQuick中可用,而不是作为标准Widget提供,但它们都不是用python3编写的,而且我对C ++不太熟悉。
我发现了这个完美的github工具https://github.com/rsgalloway/qrangeslider,但不幸的是它是为PyQt4编写的,而我正在使用PyQt5。
我打算用PyQt5绑定重新格式化这个github源,但是在这样做之前,我想知道是否有人做过,这样我可以节省时间?或者,如果有人有不同的解决方案,我欢迎您提出建议。
我在脚本中漫游着各种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样式;这些线的“上方”可能是问题吗?对于伪状态,我的语法错误吗?是什么赋予了!?提前致谢。
我在 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但不确定如何使用!有人可以帮我吗?
谢谢
没有真正的问题,我只是有一个外观问题。好吧,首先我使用 Qt Designer 创建一个表单。在此表格上我放置了一个QTreeWidget. 我们仍然在 Qt Designer 中。在 中QTreeWidget,我创建了一些条目(父母),然后我还添加了一些子条目。完成后,我保存 ui 文件,然后加载该文件 -loadUi()动态使用。在本例中我使用 PyQt4。到目前为止没有问题。
当我加载放置的表单时,QTreeWidget 我希望程序展开所有子条目。默认情况下,当我运行该程序时,我只看到父条目。当我想查看子条目时,我必须单击父条目,但我不希望这样做。
有办法解决这个问题吗?
python ×10
pyqt ×6
qt ×3
pyqt4 ×2
anaconda ×1
httpresponse ×1
image ×1
layout ×1
pandas ×1
pyqt5 ×1
pyside ×1
python-2.7 ×1
python-3.5 ×1
pyuic ×1
qfiledialog ×1
qt-designer ×1
qt4 ×1
qtableview ×1
qthread ×1
qtreewidget ×1
slider ×1
string ×1