正如标题所述,我在尝试将窗体布局设置为窗口时遇到了问题-我不确定"已经有布局"的确切含义,因为我没有显式调用setLayout,所以是否有一些默认布局应用于窗口?还是和我的超级电话有关?
搜索并没有给我一个合适的答案(至少对我的案子来说不是这样),所以我想我应该发个帖子。
import sys
from PyQt5.QtGui import *
from PyQt5.QtCore import *
from PyQt5.QtWidgets import *
#Window class
class Window(QMainWindow):
def __init__(self): # constructor for Window (passes "self" -aka Window- to __init__ to initialize it)
super(Window, self).__init__() #inherits from QMainWindow
self.setGeometry(50,50,800,600) #Set window dimensions
self.setWindowTitle("Google Music Playlist Transfer") #Set window title
self.setWindowIcon(QIcon('gmusic.png')) #Set window icon
self.home()
def home(self):
#Set email field
email = QLineEdit()
email.setMaxLength(110)
email.setAlignment(Qt.AlignLeft)
#Set password field
pwd = QLineEdit()
pwd.setAlignment(Qt.AlignLeft)
pwd.setEchoMode(QLineEdit.Password)
#Form layout
layout = QFormLayout()
layout.addRow("Email: ", email)
layout.addRow("Password: ", pwd)
#Login button
login_btn = QPushButton("Login", self) #login button
login_btn.clicked.connect(QCoreApplication.instance().quit) #tell button what to do
login_btn.resize(100, 100)
login_btn.move(100,100)
self.setLayout(layout)
self.show() #Show window
我为未来的路人解决了这个问题(虽然我不知道为什么会出现这个问题,也许有人可以在评论中对此进行扩展)-我继承了QWindow而不是QWidget,显然这会导致设置布局出现某种问题-同样,不确定为什么,但将其更改为QWidget确实解决了问题!