小编Rt *_*Rtt的帖子

如何将宽度/高度固定到 QGridLayout 中的特定列/行?

对于这个问题,我指的例子calculator.pyhttp://zetcode.com/gui/pyqt5/layout/

在示例QGridLayout中使用了 。我想问一下是否可以定义某些特定列/行的宽度/高度?

请看图片。 在此处输入图片说明 例如,我希望第二列的宽度为 50px,第三行的高度为 80px。因此,无论窗口有多大/多小,这些 50px 和 80px 始终按定义显示。当窗口大小改变时,其余的行/列可以自动缩放。

我已经搜索过,但找不到答案。

为方便起见,我将代码粘贴到此处(对原始版本略有改动)

# -*- coding: utf-8 -*-

import sys
from PyQt5.QtWidgets import (QWidget, QGridLayout, QPushButton, QApplication)

class Example(QWidget):
    def __init__(self):
        super(Example, self).__init__()
        self.initUI()

    def initUI(self):

        grid = QGridLayout()
        self.setLayout(grid)

        names = ['Cls', 'Bck', '', 'Close',
                 '7', '8', '9', '/',
                '4', '5', '6', '*',
                 '1', '2', '3', '-',
                '0', '.', '=', '+']

        positions = [(i,j) for i in range(5) for j in range(4)]

        for position, …
Run Code Online (Sandbox Code Playgroud)

python pyqt qgridlayout pyqt5

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

Python3:如何使用print()打印带引号的字符串?

我想问一下,如何print()在python3中使用打印双引号(强制).

代码:

>>> List0 = ["1", "text", 25]
>>> print(List0)
['1', 'text', 25]
>>> str0 = str(List0)
>>> print(str0)
['1', 'text', 25]
Run Code Online (Sandbox Code Playgroud)

str0看起来像一个列表,但它是一个字符串.使用时print(),双引号未显示.如何使用print(),但让报价显示?应该是这样的:"['1', 'text', 25]"

谢谢您的帮助!

python python-3.x

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

Python:更好的方式来获取每个字母/数字/等.从一个字符串并将其转换为一个列表?

我实际上知道如何使用loop,但代码看起来太丑了:-(.所以我想问一些更好的方法.

我有一个字符串:

a = "123 456 7sr"
Run Code Online (Sandbox Code Playgroud)

我想将每个数字/字母/空格/等转换为列表.期望的结果应该是:

["1", "2", "3", " ", "4", "5", "6", " ", "7", "s", "r"]
Run Code Online (Sandbox Code Playgroud)

还有其他一些方法吗?(请不要使用的方法for/while loop)

谢谢您的帮助!

python

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

如何将 QScrollArea 用于一个或多个 QGroupBox?

我一直在尝试将一个/多个 QGroupBox 插入一个 QScrollArea。

问题是:滚动条不显示。

这是我的代码:

# -*- coding: utf-8 -*-

from PyQt5.QtWidgets import QWidget
from PyQt5.QtWidgets import QLabel
from PyQt5.QtWidgets import QCheckBox
from PyQt5.QtWidgets import QGroupBox
from PyQt5.QtWidgets import QScrollArea

from PyQt5.QtWidgets import QApplication
from PyQt5.QtWidgets import QHBoxLayout, QVBoxLayout, QGridLayout

import sys

lst = [u"D", u"E", u"EF", u"F", u"FG", u"G", u"H", u"JS", u"J", u"K", u"M", u"P", u"R", u"S", u"T", u"U", u"V", u"X", u"Y", u"Z"]

class MyApp(QWidget):
    def __init__(self):
        super(MyApp, self).__init__()

        window_width = 1200
        window_height = 600
        self.setFixedSize(window_width, window_height)

        self.initUI() …
Run Code Online (Sandbox Code Playgroud)

python pyqt qscrollarea pyqt5

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

如何在不同的类中使用 Slot+Signal?

我必须说这是一个非常初学者的问题。我已经阅读并尝试了很多,但仍然不明白如何Slot+Signal工作。

在我下面的代码中,当单击按钮时,我想将三个变量从 MyApp 类传输到 Worker 类中。

该代码不起作用。

from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
from PyQt5.QtCore import *
import sys


class Worker(QObject):
    def __init__(self, parent=None):
        super(Worker, self).__init__(parent)

    @pyqtSlot(str, str, int)
    def onJob(self, strA, strB, int1):
        print(strA, strB, int1)
        for i in range(40):
            print(i)


class MyApp(QWidget):
    def __init__(self, parent= None):
        super(MyApp, self).__init__(parent)
        self.initUI()

    def initUI(self):
        self.btn = QPushButton("start", self)
        self.btn.clicked.connect(self.start)
        self.show()

    def start(self):
        otherClass = Worker()
        self.signal = pyqtSignal(str, str, int)
        self.signal.emit("foo", "baz", 10)
        self.signal.connect(otherClass.onJob)

if __name__ == …
Run Code Online (Sandbox Code Playgroud)

python pyqt pyqt4 pyqt5

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

如何使用 Tkinter after() 方法?

我在使用中的after方法时遇到问题Tkinter

计划是以i一秒的间隔打印。我检查了是否after方法是否合适,但我不确切知道。

这是代码。

# -*- coding: utf-8 -*-

from Tkinter import *
import time

root = Tk()
root.title("Program")
root['background'] ='gray'

def command_Print():
    for i in range(0, 10, 1):
        time.sleep(1)
        Label0.after(1)
        Labelvar.set(i)

Labelvar = StringVar()
Labelvar.set(u'original value')
Frame0 = Frame(root)
Frame0.place(x=0, y=0, width=100, height=50)
Label0 = Label(Frame0, textvariable=Labelvar, anchor='w')
Label0.pack(side=LEFT)


Frame_I = Frame(root)
Frame_I.place(x = 100, y = 0, width=100, height=70)
Button_I = Button(Frame_I, text = "Button" , width = 100, height=70, command …
Run Code Online (Sandbox Code Playgroud)

python tkinter

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

如何检测小部件的类型?

这应该是一个愚蠢的问题。我只是很好奇,无法独自找到答案。

例如,我在PyQt5中定义了一些小部件:

self.lbl = QLabel("label")
self.btn = QPushButton("click")
self.txt = QLineEdit("text")
Run Code Online (Sandbox Code Playgroud)

是否有任何检测什么样的插件的方法self.lblself.btn或者self.txt是谁?

我可以想象:通过检测小部件类型,输入为self.lbl,输出应为QLabel...或类似的东西。

我只找到isWidgetType()方法。但这不是我想要的。

谢谢您的帮助!

python pyqt pyqt4 pyqt5

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

PyQt [QTreeWidget]:如何为项目添加单选按钮?

对于这个问题,我指的是@Andy PyQt Tree Widget的答案,添加了动态删除复选框

@Andy 展示了如何添加CheckBox到 中QTreeWidget,效果很好。

我想在这里问,如何添加RadioButtonQTreeWidget?----而且,这对我来说更困难,如何使只有一个项目可供选择,尽管它们不同groups

我将@Andy 中的代码重写为 PyQt5:

from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
from PyQt5.QtCore import *
import sys

def main(): 
    app     = QApplication (sys.argv)
    tree    = QTreeWidget ()
    headerItem  = QTreeWidgetItem()
    item    = QTreeWidgetItem()

    for i in range(3):
        parent = QTreeWidgetItem(tree)
        parent.setText(0, "Parent {}".format(i))
        parent.setFlags(parent.flags() | Qt.ItemIsTristate | Qt.ItemIsUserCheckable)
        for x in range(5):
            child = QTreeWidgetItem(parent)
            child.setFlags(child.flags() | Qt.ItemIsUserCheckable) …
Run Code Online (Sandbox Code Playgroud)

python pyqt qtreewidget qradiobutton pyqt5

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