绝对位置小部件

时间:2019-09-15 18:49:11

标签: python qwidget pyside2

非常困惑,我已经查看了其他多个堆栈溢出页面:

class launcherWidget( QMainWindow ) :
    def __init__(self) :
        QMainWindow.__init__(self)
        self.setWindowTitle("Scouting Software Launcher")
        #self.setGeometry(100, 100, 100, 100)
        self.table = QTableWidget()
        self.table.setColumnCount(3)
        self.table.setHorizontalHeaderLabels(["Save Name", "Mod Date","Creation Date"])
        self.table.horizontalHeader().setSectionResizeMode(QHeaderView.Stretch)
        #self.layout = QHBoxLayout()
        #self.layout.addWidget(self.table)
        #self.setLayout(self.layout)
        self.table.setSelectionBehavior(QAbstractItemView.SelectRows)
        self.table.verticalHeader().setVisible(False)
        self.fill_table_with_list([["savename","mod date","creat"],["c","b","a"]])
        #self.table.resize(100,100)
        self.table.setGeometry( QRect( 50, 50, 100, 100 ) )
        #self.table.move(50,50)
        #self.show()
        self.b0 = QPushButton("New")
        self.b0.clicked.connect(self.newClicked)
        #self.layout.addWidget(self.b0,)
        #self.b0.move(0,0)
        self.b1 = QPushButton("Rename")
        self.b1.clicked.connect(self.renameClicked)
        #self.layout.addWidget(self.b1)
        #self.b1.move(300,500)
    def newClicked(self) :
        print("placeholder")
    def renameClicked(self):
        r = self.table.currentRow() 
        savename = str( self.table.item(r,0).text() )           
    def fill_table_with_list (self, data=[[]]) : 
        for row in reversed(data) :
            saveName = QTableWidgetItem(row[0])
            modDate = QTableWidgetItem(row[1])
            creaDate =QTableWidgetItem(row[2])
            self.table.insertRow(0)
            self.table.setItem(0, 0, saveName)
            self.table.setItem(0, 1, modDate) 
            self.table.setItem(0, 2, creaDate)   
    @Slot()
    def exit_app(self, checked):
        QApplication.quit()
def onLaunch () :
    app = QApplication(sys.argv)
    window = launcherWidget() # screen = before change
    #window.resize(500, 300) #can always be fullscreened
    window.resize(1820,980)
    window.show()
    sys.exit(app.exec_())
if __name__ == "__main__": 
    onLaunch()

尝试使用绝对定位,我无法显示我的桌子,我得到的只是一个空白的窗口。我希望不必使用布局,但是到目前为止,这似乎是显示表格和按钮的唯一方法。我已注释掉的所有内容都是尝试使其起作用。 table.show()似乎只是在单独的窗口中显示表。 .move()似乎无能为力,最近尝试了setGeometry(),该方法也不起作用。我什至没有尝试过显示按钮,我无法想象会得到不同的结果。我首先以为我的座标错了,但是我经历了反复试验才能排除其中一个

1 个答案:

答案 0 :(得分:1)

TL; DR; 作为窗口小部件的父级传递到窗口


如果一个小部件是该小部件的儿子,则在另一个小部件上绘制一个小部件,在您的情况下,无论是QTableWidget还是QPushButton都不是,如果布局除了处理位置和大小,它们也将作为小部件的父级它处理放置在其上的小部件。

l