标签: pyside

QLayout:尝试将QLay""添加到QWidget"",它已经有了布局

我想创建一些选项卡,我读到了这个答案:如何在PySide中添加选项卡

我在答案中使用代码并进行了一些更改.因为我的代码必须读取一些文件并从这些文件中获取我的选项卡的名称,以便在我的代码中添加for循环.这是我的代码.

from PySide import QtCore, QtGui
import sys
import dflash_controller as con

if __name__ == "__main__":
    list = [['a', 3], ['b', 4], ['c', 5], ['d', 6]]
    app = QtGui.QApplication(sys.argv)
    wid = QtGui.QWidget()
    grid = QtGui.QGridLayout(wid)
    wid.setLayout(grid)

    # setting the inner widget and layout
    grid_inner = QtGui.QGridLayout(wid)
    wid_inner = QtGui.QWidget(wid)
    wid_inner.setLayout(grid_inner)

    # add the inner widget to the outer layout
    grid.addWidget(wid_inner)

    # add tab frame to widget
    wid_inner.tab = QtGui.QTabWidget(wid_inner)
    grid_inner.addWidget(wid_inner.tab)

    # create tab


    for i, index in enumerate(list[0:]): …
Run Code Online (Sandbox Code Playgroud)

python tabs qwidget pyside qlayout

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

PySide/PyQt检测用户是否试图关闭窗口

有没有办法检测用户是否试图关闭窗口?例如,在Tkinter中我们可以这样做:

def exit_dialog():
    #do stuff
    pass

root = Tk()
root.protocol("WM_DELETE_WINDOW", exit_dialog)
root.mainloop()
Run Code Online (Sandbox Code Playgroud)

谢谢.

python tkinter pyqt pyqt4 pyside

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

PySide/Qt导入错误

我试图像这样导入PySide/Qt到Python并得到以下错误:

from PySide import QtCore

ImportError: dlopen(/usr/local/lib/python2.7/site-packages/PySide/QtCore.so, 2): Library not loaded: libpyside-python2.7.1.2.dylib
  Referenced from: /usr/local/lib/python2.7/site-packages/PySide/QtCore.so
  Reason: image not found
Run Code Online (Sandbox Code Playgroud)

我通过以下方式运行/安装:

  • Mac OSX 10.9.4小牛队
  • 自制Python 2.7
  • 自制安装Qt
  • Pip安装了PySide

libpyside-python2.7.1.2.dylib文件与错误消息中列出的QtCore.so文件位于同一路径中.

我对这个特定问题的所有搜索都让人们试图将这些库打包为应用程序的一部分,我没有这样做.我只是想在我的系统上运行它,但却有这个问题.对于应用程序的疑难解答,人们建议oTool; 不确定它是否有用,但这是我运行oTool时的输出:

otool -L QtCore.so 
QtCore.so:
    libpyside-python2.7.1.2.dylib (compatibility version 1.2.0, current version 1.2.2)
    libshiboken-python2.7.1.2.dylib (compatibility version 1.2.0, current version 1.2.2)
    /usr/local/lib/QtCore.framework/Versions/4/QtCore (compatibility version 4.8.0, current version 4.8.6)
    /usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 120.0.0)
    /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1197.1.1)
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?提前致谢 :)

python macos qt pyside

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

使用python将Qt与Windows 7任务栏集成?

我正在寻找一种方法来使用一些Windows 7任务栏功能 - 特别是进度条和跳转列表 - 在一个使用Qt的UI的python应用程序中.我在SO上看到的问题都是1-2岁,或者说Qt还没有,但下一个版本会有它(已经发布)或指向Q7Goodies,我不想这样做用于成本原因.

有谁知道Qt和python绑定(PyQt或PySide)是否可以与Windows 7任务栏交互?

我使用的是Python 2.7.x和Qt 4.6.如果需要我可以升级到4.7,我还不能升级到Python 3.x.

python qt taskbar pyqt pyside

19
推荐指数
1
解决办法
786
查看次数

单元和功能测试基于PySide的应用程序?

我正在构建一个基于PySide 1.1.0的应用程序,并且一直在寻找好的示例来查看我的应用程序的单元和功能测试.我希望能够对UI进行功能测试(模拟点击,按键等),改变UI布局的UI插槽的单元测试(可能使用部分模拟的发送器和接收器),以及单元测试涉及小部件的代码,但不需要渲染任何窗口.

作为一个示例,当项目被添加到向QTreeView提供数据的模型(QAbstractItemModel派生对象)时,我动态地创建菜单栏中的一个菜单的子菜单.模型和子菜单必须保持同步,因此我希望能够编写一个单元测试,将数据提交给管理模型和子菜单的控制器,并断言模型和子菜单都已正确更新.

如果我可以避免,我宁愿不必在我的测试代码中设置QApplication.当我只关心验证小部件中的数据结构而不是它们的可视化时,我也不想显示任何窗口.

我在http://www.pyside.org或Google搜索中找不到任何合适的价值.有没有人有任何经验或知道我应该看的好示例代码?

python unit-testing qt4 pyside

19
推荐指数
1
解决办法
4957
查看次数

PyQt与PySide比较

我目前在Linux上的Qt重C++/Python环境中开发了许多应用程序,根据需要移植到PC/Mac.我使用嵌入在C++中的Python以及独立的GUI.Qt用于xml解析/事件处理/ GUI /线程等等.现在我所有的Python工作都在PyQt中,我想看看每个人如何看待PySide.我很感兴趣,因为它是内部的,因此应该支持更多的组件,希望更好的集成.你有什么经历?

我知道以前曾经问过这个问题,但是我希望能够恢复对话.

c++ python qt pyqt pyside

18
推荐指数
1
解决办法
8909
查看次数

使用pyside-uic生成Python代码

如何从QtDesigner文件生成python代码?我找到了pyside-uic但我找不到语法的例子.我用spyder运行win7和pythonxy.

python pyside

18
推荐指数
5
解决办法
4万
查看次数

Phonon的VideoWidget在QGLWidget上显示错误的颜色(Qt,Python)

我有一个宠物项目,其中包含一个带有显示字幕功能的视频播放器.到目前为止,我正在研究项目的其他部分,但现在我必须以最佳方式实现字幕渲染部分.

我没有发现任何为此而有用的,除了这个.

但是当我使用这段代码时,我得到了错误的视频图片. 红色和蓝色交换的视频帧

颜色被修改:红色→蓝色,蓝色→红色等.

有人可以帮助我使用此代码,或者向我展示另一种在视频上渲染字幕的解决方案吗?

PS:我用PySide 1.0.0,1.0.6以及Arch和Ubuntu linux进行了测试.


编辑:解决方法

感谢alexisdm,这是一个丑陋的黑客攻击.它改变了paint()反转颜色的方法.

import sys
from PySide.QtGui import QApplication, QMessageBox
# overlay
from PySide.QtGui import QGraphicsScene, QGraphicsView, QGraphicsProxyWidget, QPainter, QImage
from PySide.QtOpenGL import QGLWidget

from PySide.phonon import Phonon

try:
    from OpenGL import GL
except ImportError:
    app = QApplication(sys.argv)
    QMessageBox.critical(None, "OpenGL 2dpainting",
                            "PyOpenGL must be installed to run this example.",
                            QMessageBox.Ok | QMessageBox.Default,
                            QMessageBox.NoButton)
    sys.exit(1)


#class CustomProxy(QGraphicsProxyWidget):
#    def __init__(self, parent=None):
#        QGraphicsProxyWidget.__init__(self, parent)
#
#
#    def …
Run Code Online (Sandbox Code Playgroud)

python opengl video qt pyside

18
推荐指数
1
解决办法
1417
查看次数

如何使用PySide将.ui文件加载到python类中?

我已经使用了PyQt很长一段时间,而且在我使用它的整个过程中,有一个非常一致的编程模式.

  1. 使用Qt Designer创建.ui文件.
  2. 创建一个与您在.ui文件中创建的窗口小部件类型相同的python类.
  3. 初始化python类时,使用uic将.ui文件动态加载到类中.

有没有办法在PySide中做类似的事情?我已经阅读了文档和示例,我能找到的最接近的东西是一个计算器示例,它将.ui文件预渲染为python代码,这是在PyQt中执行它的超级老方法(为什么要将它烘焙到python什么时候你可以解析ui?)

python user-interface qt pyqt pyside

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

如何从不同的进程发信号通知GUI中的插槽?

上下文:在Python中,主线程产生第二个进程(使用多处理模块),然后启动GUI(使用PyQt4).此时主线程将阻塞,直到GUI关闭.第二个过程总是处理,理想情况下应该以异步方式将信号发送到GUI中的特定插槽.

问题:Python和PyQt4中有哪些方法/工具可以实现这些以及如何实现?优选地,以软中断方式而不是轮询.

抽象地说,我能想到的解决方案是在主线程中实例化的"工具/处理程序",它抓取GUI实例中的可用插槽并连接来自第二个进程的抓取信号,假设我提供了这个工具的一些信息期待或硬编码.这可以实例化为第三个进程/线程.

python signals pyqt multiprocessing pyside

17
推荐指数
3
解决办法
5601
查看次数