标签: pyside

PyQt或PySide - 使用哪一个

我开始学习一点python,现在想玩gui-building.由于其跨平台性,Qt似乎是一个不错的选择.
现在似乎有两种绑定:Riverbank Computing的PyQt和最初由诺基亚开发的PySide.
那么我应该选择哪一个?我所能找到的只是两年的特征比较,但现在有什么不同?
哪一个更容易使用,有更多/更好的文档?两者还在积极发展吗?
许可证对我来说并不是很重要,因为我不打算编写商业应用程序.

python pyqt pyside

68
推荐指数
6
解决办法
5万
查看次数

是否可以在Virtualenv沙箱上添加PyQt4/PySide包?

我使用VIRTUALENV与我的发展环境与利润web.py,simplejson以及其他面向Web的包.
我将使用Qt开发一个简单的python客户端来重用一些用web.py开发的Api.

这里有人用Virtualenv成功安装了PyQt4吗?
可能吗?

我已经下载了所有二进制文件并已PyQt4在我的python2.6目录中全局安装.
如果我不使用--no-site--packages选项,Virtualenv正确地包含PyQt4在我的新沙箱中,但显然,包含我不需要的所有全局包.

有没有一种干净的方法来准备一个新的沙盒--no-site--packages选项,然后添加PyQt4PySide使用pip,easy_install或其他一些魔术?

python virtualenv pyqt4 pyside

59
推荐指数
7
解决办法
4万
查看次数

PySide插槽装饰器是否必要?

我已经看到了一些使用@ QtCore.Slot装饰器的PySide插槽的示例代码,有些则没有.自己测试一下,它似乎没有什么区别.有没有理由我应该或不应该使用它?例如,在以下代码中:

import sys
from PySide import QtCore

# the next line seems to make no difference
@QtCore.Slot()
def a_slot(s):
    print s

class SomeClass(QtCore.QObject):
    happened = QtCore.Signal(str)
    def __init__(self):
        QtCore.QObject.__init__(self)
    def do_signal(self):
        self.happened.emit("Hi.")

sc = SomeClass()
sc.happened.connect(a_slot)
sc.do_signal()
Run Code Online (Sandbox Code Playgroud)

@ QtCore.Slot装饰器没什么区别; 我可以省略它,调用@ QtCore.Slot(str),甚至@ QtCore.Slot(int),它仍然很好地说,"嗨."

PyQt的pyqtSlot似乎也是如此.

python pyqt signals-slots pyside

35
推荐指数
3
解决办法
7968
查看次数

在PySide中加载QtDesigner的.ui文件

我正在寻找一个简单的例子,说明如何将QtDesigner生成的.ui文件直接加载到Python应用程序中.

我只是想避免使用pyuic4.

python qt pyside

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

Python中的Qt/C++原型

我想用Qt编写一个C++应用程序,但是首先使用Python构建一个原型,然后逐渐用C++替换Python代码.

这是正确的方法,我应该使用哪些工具(绑定,绑定生成器,IDE)?
理想情况下,所有内容都应该在Ubuntu存储库中可用,因此我不必担心不兼容或旧版本,并且只需简单地设置所有内容即可aptitude install.
是否有关于此过程的全面文档,或者我是否必须学习每个组件,如果是,那么哪些组件?

现在我有多种选择:Qt Creator,因为很好的自动完成和Qt集成.
Eclipse,因为它支持C++和Python.埃里克(还没用过)Vim

PySide因为它正在使用CMake和Boost.Python,所以从理论上讲它会更容易替换python代码.PyQt因为它被更广泛地使用(更多支持)并且可以作为Debian包使用.

编辑:因为我必须将程序部署到各种计算机,C++ - 解决方案将需要1-5个文件(程序和一些库文件,如果我静态链接它),使用Python我必须构建PyQt/PySide/SIP /在每个平台上都有,并解释如何安装Python和其他所有东西.

c++ python qt pyqt pyside

25
推荐指数
1
解决办法
5203
查看次数

PyQt/PySide中是否有默认图标?

我正在阅读关于PySide的教程,我在想,我是否需要为每件事找到自己的图标,或者是否有某种方法可以使用一些内置图标.这样,如果我想让我的小gui在另一个桌面环境中运行,我就不需要找到一整套新的图标.

python user-interface icons pyqt pyside

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

使用Qt Designer和PyQt/PySide进行MVC设计

Python新手来自Java(+ SWT/Windowbuilder),我很难解决如何在Python/Qt4(QtDesigner)/ PySide中正确编写大型桌面应用程序的问题.

我想在.ui文件之外的控制器类中保留任何视图逻辑(并且它是.py转换).首先,逻辑独立于GUI框架,其次是.ui和结果.py文件在任何更改时都会被覆盖!

我发现只有一些例子将动作代码添加到单片MainWindow.py(从ui生成)或MyForm.py(也是从.ui生成)中.我看不到任何方法将POPO控制器类链接到QtDesigner中的操作.

有人能指出我在可扩展的MVC/P方法中使用QtDesigner创建大规模应用程序的工作流程吗?

python model-view-controller pyqt qt-designer pyside

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

当更多小部件放在里面时,我如何调整QScrollArea的内容

我有一个QScrollArea小部件,它从空开始;

空QScrollArea

它有一个垂直布局,一个QGridLayout和一个垂直间隔,以保持在顶部,并防止它在整个滚动区域上伸展;

Qt Designer中的QScrollArea

在程序的其他地方,有一个QTextEdit,当它被改变时,其内容扫描"种类"元素,然后它们被添加到QGridLayout.已经除去的任何物种元素也被除去.这个位有效;

带有奇怪滚动条的QScrollArea

我一直打开垂直滚动条,所以当它出现时它不会位于那里的其他东西之上.请注意,尽管不需要,滚动条已经大于滚动框.

这就是问题.滚动区域似乎是预设的,我无法更改它.如果我向QGridLayout添加更多行,则滚动区域的大小不会增加.

相反,它保持相同的大小,并挤压QGridLayout,使它看起来很丑陋(起初);

压缩QGridLayout

然后添加更多它变得无法使用;

不可用的行编辑

请注意,滚动条仍然与之前的图像大小相同.前两个图像来自Qt Designer,后续的3个来自程序运行.

如果我调整窗口大小以使QScrollArea增长,那么我看到:

笨太小的布局

指示滚动区域内的某些布局未正确调整大小.

我的问题是; 当我在QGridLayout中添加和删除时,我需要做什么才能使窗口小部件的可滚动区域动态调整大小?

qt pyside qscrollarea

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

让PySide与matplotlib一起使用

我试过在SciPy网站上运行示例代码,但是我收到此错误:

Traceback (most recent call last):
  File ".\matplotlibPySide.py", line 24, in <module>
    win.setCentralWidget(canvas)
TypeError: 'PySide.QtGui.QMainWindow.setCentralWidget' called with wrong argument types:
  PySide.QtGui.QMainWindow.setCentralWidget(FigureCanvasQTAgg)
Supported signatures:
  PySide.QtGui.QMainWindow.setCentralWidget(PySide.QtGui.QWidget)
Run Code Online (Sandbox Code Playgroud)

我正在构建一个简单的科学数据记录器,最终将用于商业应用程序,所以我真的需要PySide的LGPL和绘图功能.有没有人有如何使这个工作或替代绘图包或想法的经验?

提前致谢.

python matplotlib pyside

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

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万
查看次数