小编101*_*101的帖子

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

解包关键字参数,但只包含与函数匹配的参数

假设我有一个功能:

def foo(a=None, b=None, c=None):
  return "a:%s, b:%s, c:%s" % (a, b, c)
Run Code Online (Sandbox Code Playgroud)

我有一个上面有一些(或没有)参数的字典,但也有一个在函数中没有命名参数的键,例如:

d = {'a': 1, 'x': 4, 'b': 2, 'y': 5}
Run Code Online (Sandbox Code Playgroud)

如果我调用以下内容,我将收到错误,因为'x'和'y'不是foo函数中的关键字参数.

foo(**d)  # error
Run Code Online (Sandbox Code Playgroud)

是否有一种优雅的方式将参数从字典传递给函数,但只有那些具有与函数参数匹配的键的值.

如果我的参数/参数术语关闭,请纠正我.

python

20
推荐指数
3
解决办法
6428
查看次数

将额外的参数传递给PyQt插槽而不会丢失默认信号参数

PyQt按钮事件可以以正常方式连接到函数,以便函数接收默认信号参数(在这种情况下按钮检查状态):

def connections(self):
    my_button.clicked.connect(self.on_button)

def on_button(self, checked):
    print checked   # prints "True"
Run Code Online (Sandbox Code Playgroud)

或者,可以使用lambda以下方式覆盖默认信号参数:

def connections(self):
    my_button.clicked.connect(lambda: self.on_button('hi'))

def on_button(self, message):
    print message   # prints "hi"
Run Code Online (Sandbox Code Playgroud)

是否有一种很好的方法可以保留两个信号参数,以便它可以直接由下面的函数接收?

def on_button(self, checked, message):
    print checked, message   # prints "True, hi"
Run Code Online (Sandbox Code Playgroud)

python pyqt pyqt4

8
推荐指数
1
解决办法
4614
查看次数

使主线程等到所有其他Qthread完成

有没有办法强制主线程等到从它创建的所有线程完成他们的工作,然后才能完成程序.我的意思是:

int main(){
    QthreadClass a; // in cons' a thread is created and running
    QthreadClass b; // same as before

    *** wish to wait till both created thread finished their jobs ***

    return 0;
Run Code Online (Sandbox Code Playgroud)

}

c++ qthread

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

为什么!==""不等于!== null

最近在JavaScript中我已经养成了使用习惯

if(data !== "")
Run Code Online (Sandbox Code Playgroud)

检查数据是否为空|| undefined || 空白字符串.

当我尝试使用

if(data !== null)
   //work here
Run Code Online (Sandbox Code Playgroud)

Resharper向我抛出了一个可怕的错误

"限定符可以为null或undefined"

在此输入图像描述

我添加了一个jFiddle只是为了澄清:JsFiddle

我的问题是:这是一个ReSharper错误还是背后有什么东西?

javascript resharper

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

无法隐藏或禁用QWizard上的关闭按钮

默认情况下,QWizard对话框的右上角有一个上下文帮助[?]和一个关闭[X]按钮.我可以隐藏上下文帮助按钮,但我无法使用关闭按钮消失setWindowFlags.例如:

# preserves current window flags but removes context help button
self.setWindowFlags(self.windowFlags() & ~QtCore.Qt.WindowContextHelpButtonHint)

# has no effect
self.setWindowFlags(self.windowFlags() & ~QtCore.Qt.WindowCloseButtonHint)
Run Code Online (Sandbox Code Playgroud)

有谁知道这是为什么?

python qt pyqt pyside

5
推荐指数
1
解决办法
3682
查看次数

如何在 virtualenv 中使用 nuitka

我正在为我的项目使用 nuitka。它有一些 3rd 方模块作为依赖项,我使用的是 virtualenv。

如何在 virtualenv 中使用 nuitka?

python python-3.x nuitka

5
推荐指数
1
解决办法
1775
查看次数

使用函数作为字典键

将函数用作字典键是否被视为不良形式?例如:

def add(a, b):
    return a + b

mydict = {add: "hello"}
Run Code Online (Sandbox Code Playgroud)

python

4
推荐指数
1
解决办法
2666
查看次数

更改扁平QPushButton悬停状态的样式(不使用样式表)

Flat QPushButtons没有鼠标悬停的迹象.有没有办法为平面按钮悬停状态设置样式,以便它匹配正常按钮悬停状态(或类似的东西)的样式?

QPushButton类型

如果它意味着偏离默认外观或者必须从头开始设计按钮样式,我不想使用样式表.

qt pyqt hover qtstylesheets qpushbutton

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

在 Chrome 扩展程序中为 HTTP 请求设置用户代理

我正在用纯 JavaScript 编写 Chrome 扩展程序,并希望将 HTTP 请求的用户代理更改为给定的 URL,因为该 URL 的所有者已请求使用某种格式的用户代理。

以下代码在添加用户代理修改行之前一直有效,此时 Chrome 检查器控制台给出错误Refused to set unsafe header "User-Agent"

var xhr = new XMLHttpRequest();
xhr.open("GET", serviceURL, true, username, password);
xhr.setRequestHeader('User-Agent', 'MyExtensionName/0.0.1');
xhr.onreadystatechange = function() {
    // do some stuff
}
xhr.send(null);
Run Code Online (Sandbox Code Playgroud)

为什么不能以这种方式修改用户代理?

javascript user-agent xmlhttprequest google-chrome-extension

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