对于这个问题,我指的例子calculator.py从http://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) 我想问一下,如何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]"?
谢谢您的帮助!
我实际上知道如何使用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)
谢谢您的帮助!
我一直在尝试将一个/多个 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) 我必须说这是一个非常初学者的问题。我已经阅读并尝试了很多,但仍然不明白如何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) 我在使用中的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) 这应该是一个愚蠢的问题。我只是很好奇,无法独自找到答案。
例如,我在PyQt5中定义了一些小部件:
self.lbl = QLabel("label")
self.btn = QPushButton("click")
self.txt = QLineEdit("text")
Run Code Online (Sandbox Code Playgroud)
是否有任何检测什么样的插件的方法self.lbl,self.btn或者self.txt是谁?
我可以想象:通过检测小部件类型,输入为self.lbl,输出应为QLabel...或类似的东西。
我只找到isWidgetType()方法。但这不是我想要的。
谢谢您的帮助!
对于这个问题,我指的是@Andy PyQt Tree Widget的答案,添加了动态删除复选框
@Andy 展示了如何添加CheckBox到 中QTreeWidget,效果很好。
我想在这里问,如何添加RadioButton到QTreeWidget?----而且,这对我来说更困难,如何使只有一个项目可供选择,尽管它们不同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 ×8
pyqt ×5
pyqt5 ×5
pyqt4 ×2
python-3.x ×1
qgridlayout ×1
qradiobutton ×1
qscrollarea ×1
qtreewidget ×1
tkinter ×1