我是一名Python中级人员,但我错过了Python的一些基本部分。我目前正在学习 PyQt5,但还不想使用子类创建窗口。我以前尝试过 PyQt5,但从未真正理解它,并且在不了解基础知识的情况下复制和粘贴所有内容。我目前正在用 python 开发一个非常基本的文件管理器,但在显示文件夹按钮时遇到一些问题。
我会根据文件和文件夹的数量自动创建按钮(我现在正在制作所有文件夹图标)并将它们添加到 QWidget 中。这是我的代码部分,未按预期工作:
for x in files:
folderbutton = QPushButton(w)
folderbutton.setIcon(foldericon)
folderbutton.setIconSize(QSize(100, 100))
folderbutton.setGeometry(folposx, folposy, 100, 100)
folposx += 10
if folposx >= 1919:
folposx = 0
folposy += 120
for 循环遍历所有文件。
folposx
和 folposy
已在代码前面定义。它们都设置为零。 folderbutton
是临时定义每个 QPushButton
的内容。 foldericon
之前在代码中定义为 QIcon
。定义按钮的位置和大小后,代码将 10 添加到 folposx
,因此下一个按钮位于其旁边。如果按钮超出屏幕宽度,按钮的 Y 值会增加,按钮的 X 值会重置,为文件夹按钮创建新行。
如果有人可以帮助我,我将不胜感激,如果有人需要我的完整代码,我很乐意用它编辑这个问题。
谢谢,扎扬。
编辑:下面是我的完整代码,需要所有代码来重现我的问题。
import os
import sys
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
files = os.listdir()
def window():
global files
app = QApplication(sys.argv)
w = QWidget()
w.setStyleSheet('background: black; color: white;')
folposx = 0
folposy = 0
w.setGeometry(0, 0, 1919, 1079)
foldericon = QIcon('C:/Users/HP/OneDrive/Python_Projects/aura_explorer/folder.png')
pixmap = foldericon.pixmap(100, 100)
for x in files:
folderbutton = QPushButton(w)
folderbutton.setIcon(foldericon)
folderbutton.setIconSize(QSize(100, 100))
folderbutton.setGeometry(folposx, folposy, 100, 100)
folposx += 10
if folposx >= 1919:
folposx = 0
folposy += 120
w.show()
sys.exit(app.exec_())
if __name__ == '__main__':
window()