我最近更新到了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)')
我正在 PyQt 中构建一个程序,用户可以从一组可选菜单项中进行选择。但是,我希望用户只能在满足某些条件时才能单击内容。我想知道的是,是否可以将菜单区域中的某个项目灰显或完全禁用?
我正在尝试为我的应用程序中的 Ok 按钮触发我尝试的当前代码是这样的:
self.okPushButton.setShortcut("ctrl+Enter")
Run Code Online (Sandbox Code Playgroud)
但是,它不起作用,这是有道理的。我尝试在此处查找一些键序列,但是,如果我尝试使用shift
或alt
键,也会出现类似的问题。
我怎样才能触发 OkButton ctrl+Enter
在 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)
我有许多函数都共享相同的参数.他们将多次输入和输出此参数.
例如:
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) 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) 我正在尝试将当前版本的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)
我该怎么做才能解决此问题?