小编tis*_*rum的帖子

QtWidgets.QFileDialog.getOpenFileName返回一个元组

我最近更新到了Qt5 for Python的新版本.在这样做时,我一直在根据已经发生的一些显着变化来改变我的代码.我希望能够深入了解我创建的这一行代码.这感觉就像是解决从函数中获取string而不是a 的问题的一种肮脏方式tuple.(注意[0]在行尾)

filename = QtWidgets.QFileDialog.getOpenFileName(None, "Open " + key + " Data File", '.', "(*.csv)")[0]
Run Code Online (Sandbox Code Playgroud)

我想要 filename = {str}'C:/.././.../format.csv'

filename = <class 'tuple'>: ('C:/.././.../format.csv', '(*.csv)')

python pyqt qt5 pyqt5 qtwidgets

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

如何使 PyQt 中的菜单项变灰

我正在 PyQt 中构建一个程序,用户可以从一组可选菜单项中进行选择。但是,我希望用户只能在满足某些条件时才能单击内容。我想知道的是,是否可以将菜单区域中的某个项目灰显或完全禁用?

python pyqt pyqt4

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

PyQt 用 ctrl+Enter 触发一个按钮

我正在尝试为我的应用程序中的 Ok 按钮触发我尝试的当前代码是这样的:

self.okPushButton.setShortcut("ctrl+Enter")
Run Code Online (Sandbox Code Playgroud)

但是,它不起作用,这是有道理的。我尝试在此处查找一些键序列,但是,如果我尝试使用shiftalt键,也会出现类似的问题。

我怎样才能触发 OkButton ctrl+Enter

python pyqt pyqt5 qshortcut

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

是否可以让 QListWidget 选择多个 setCurrentItems

在 PyQt 中,我可以让 QListWidget 使用QListWidget.setCurrentItem(item). 当然,这将在我的 QListWidget 中为我选择一个项目。

但是,我想知道是否存在一种方法,例如setCurrentItems([item1, item2, item3])如果我给出一个列表,它将选择 QListWidget 中与这些项目匹配的所有项目。

现在我当前的实现只允许我选择一个项目。在这种情况下,项目“data2”

index = ['data', 'data1', 'data2']
for i in index:
    matching_items = listWidget.findItems(i, QtCore.Qt.MatchExactly)
    for item in matching_items:
        listWidget.setCurrentItem(item)
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

如果能做这样的事情就很酷了。

index = ['data', 'data1', 'data2']
for i in index:
    matching_items.append(listWidget.findItems(i, QtCore.Qt.MatchExactly))
listWidget.setCurrentItems(matching_items)
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

python pyqt qlistwidget

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

(Python)我应该使用参数还是将其设为全局?

我有许多函数都共享相同的参数.他们将多次输入和输出此参数.

例如:

a = foo
a = fun(a)
a = bar(a)

def fun(a):
     ...
     return a

def bar(a):
     ...
     return a
Run Code Online (Sandbox Code Playgroud)

什么在语法上更正确,通过函数传递参数,或者让所有函数可以全局访问?

a = foo
fun()
bar()

def fun():
    global a
    ...

def bar():
    global a
    ...
Run Code Online (Sandbox Code Playgroud)

python parameters global-variables

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

如何在不使用for循环的情况下获取char*变量的大小?

char *foo(char *dest, const char *src) {
    size_t i;                      
    for (i = 0; dest[i] != '\0'; i++);
Run Code Online (Sandbox Code Playgroud)

在这里,我正在迭代以获得dest的大小.在这种情况下,我将"hello"输入到dest中,其大小为6.当我尝试使用sizeof(dest)时,我得到4作为返回值.我希望能够在不使用for循环的情况下获取dest内部的内容大小.

char *foo(char *dest, const char *src) {
    while (*dest != '\0') dest++;           /* increment the length of dest's pointer*/
Run Code Online (Sandbox Code Playgroud)

编辑::我想花点时间表明我能够直接找到长度.

这是strcat程序的一部分.要求是不要使用[]括号来访问或在内存中移动.

char *strcat(char *dest, const char *src) {
    while (*dest != '\0') dest++;           /* increment the length of dest's pointer*/
    while (*src != '\0')                    /* we will be incrementing up through src*/
        *dest++ = *src++;                   /* while this is happening …
Run Code Online (Sandbox Code Playgroud)

c pointers sizeof char

0
推荐指数
1
解决办法
428
查看次数

如何在Anaconda 4.3.X版上安装PyQt4

我正在尝试将当前版本的PyQt5暂时降级为PyQt4。但是,此命令conda install pyqt=4.11只会产生此错误。

UnsatisfiableError: The following specifications were found to be in conflict:
  - pyqt 4.11* -> python 2.7*
  - python 3.6*
Run Code Online (Sandbox Code Playgroud)

我该怎么做才能解决此问题?

python pyqt pyqt4 anaconda pyqt5

0
推荐指数
1
解决办法
3610
查看次数