python - 从列表中创建可滚动区域
问题描述
我有一个要放入小部件的项目列表,滚动浏览该小部件并选择每个项目。起初,我尝试使用 QLabels 执行此操作,但它只是将它们列为无法通过单击选择的文本。因此,我决定使用按钮,即使它不是我想要的功能。
但是,似乎没有滚动...它只是将所有元素塞入该区域,使它们变得非常小。
我有的:
我想要的是:
基本上我想要一个列出所有项目的滚动区域,这样通过选择一个我可以获得包含的文本。
我的代码:
# in class
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.monthList = QtWidgets.QScrollArea(self.centralwidget)
self.monthList.setWidgetResizable(True)
self.monthList.setStyleSheet("background: #edb5bf")
self.monthLayout = QtWidgets.QVBoxLayout(self.monthList)
Methods.ListAvailableMonths(self.monthLayout)
# in methods
def ListAvailableMonths(scrollView):
available = os.listdir(directories)
for month in available:
button = QtWidgets.QPushButton()
button.setText(month.strip())
scrollView.addWidget(button)
解决方案
你试过用tkinter
吗?
root = Tk()
listbox = Listbox(root)
listbox.pack(side = LEFT, fill = BOTH)
scrollbar = Scrollbar(root)
scrollbar.pack(side = RIGHT, fill = BOTH)
在此处插入所需的元素
示例:值 1 到 100
for values in range(100):
listbox.insert(END, values)
将列表框附加到滚动条
listbox.config(yscrollcommand = scrollbar.set)
scrollbar.config(command = listbox.yview)
root.mainloop()
推荐阅读
- python - 尝试将 tkinter 中的图像正确显示到类的方法中
- go - go rpc 内存泄漏还是不了解?
- ruby - 更新 Ruby Mac OS 10.6.8 Snow Leopard
- javascript - (Javascript) 需要帮助将对象转换为数组
- amazon-web-services - Kinesis 到 S3 自定义分区
- r - 在列表中包含列表
- angularjs - Jasmine - 如何为具有命名属性和对象的数组编写测试
- java - 为什么有时swing JPanel布局会自动调整到最小
- apache - 如何只允许从 Apache Httpd 2.4 上的特定主机访问?
- r - 如何在不使用索引的情况下以 R 语言从第一行开始读取 CSV 文件中的特定行,直到某一行