久久久久久久av_日韩在线中文_看一级毛片视频_日本精品二区_成人深夜福利视频_武道仙尊动漫在线观看

<small id='jD86J'></small><noframes id='jD86J'>

<tfoot id='jD86J'></tfoot>
    <bdo id='jD86J'></bdo><ul id='jD86J'></ul>

    <legend id='jD86J'><style id='jD86J'><dir id='jD86J'><q id='jD86J'></q></dir></style></legend>
  1. <i id='jD86J'><tr id='jD86J'><dt id='jD86J'><q id='jD86J'><span id='jD86J'><b id='jD86J'><form id='jD86J'><ins id='jD86J'></ins><ul id='jD86J'></ul><sub id='jD86J'></sub></form><legend id='jD86J'></legend><bdo id='jD86J'><pre id='jD86J'><center id='jD86J'></center></pre></bdo></b><th id='jD86J'></th></span></q></dt></tr></i><div class="qwawimqqmiuu" id='jD86J'><tfoot id='jD86J'></tfoot><dl id='jD86J'><fieldset id='jD86J'></fieldset></dl></div>

    1. 在QMainWindow中放置一個小部件,如何定位而不是

      Placing a widget in QMainWindow, how to position instead of setCentralWidget(在QMainWindow中放置一個小部件,如何定位而不是setCentralWidget)

          <tfoot id='859We'></tfoot>
        • <legend id='859We'><style id='859We'><dir id='859We'><q id='859We'></q></dir></style></legend>

          <small id='859We'></small><noframes id='859We'>

        • <i id='859We'><tr id='859We'><dt id='859We'><q id='859We'><span id='859We'><b id='859We'><form id='859We'><ins id='859We'></ins><ul id='859We'></ul><sub id='859We'></sub></form><legend id='859We'></legend><bdo id='859We'><pre id='859We'><center id='859We'></center></pre></bdo></b><th id='859We'></th></span></q></dt></tr></i><div class="qwawimqqmiuu" id='859We'><tfoot id='859We'></tfoot><dl id='859We'><fieldset id='859We'></fieldset></dl></div>

            <bdo id='859We'></bdo><ul id='859We'></ul>
                <tbody id='859We'></tbody>

                本文介紹了在QMainWindow中放置一個小部件,如何定位而不是setCentralWidget的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!

                問題描述

                我正在使用 QGridLayout,通過使用 setCentralWidget 函數,行和列 (0,0) 從窗口的中心開始,留下很多空白空間.

                I'm using QGridLayout, and by using the setCentralWidget function, the row and column (0,0) start in the center of the window which leaves a lot of empty space.

                如何讓它居中但從窗口頂部開始而不是在中間?

                How can I get it centered but beginning from the top of the window and not in the middle?

                我對 Qt 還很陌生,想知道我是否處理錯了?我應該改為為 QWidget 創建一個新類嗎?

                I'm pretty new to Qt, and was wondering if I'm handling it all wrong? Should I instead make a new class for QWidget?

                class App(QMainWindow):
                    def __init__(self):
                        super().__init__()
                        self.title = 'Data visualizing'
                        self.left = 50
                        self.top = 50
                        self.width = 300
                        self.height = 100
                        self.initUI()
                
                    def initUI(self):
                        self.central_widget = QWidget()
                        self.setCentralWidget(self.central_widget)
                
                        # Create textbox
                        self.textbox = QLineEdit(self)
                        self.textbox.setReadOnly(True)
                
                        # Create textbox 2
                        self.textbox2 = QLineEdit(self)
                        self.textbox2.setReadOnly(True)
                
                        # Create button
                        self.button = QPushButton('Load file 1', self)
                        self.button.setToolTip('Click here to browse for the first data file')
                        self.button.clicked.connect(self.on_click)
                
                        # Create button 2
                        self.button2 = QPushButton('Load file 2', self)
                        self.button2.setToolTip('Click here to browse for the first data file')
                        self.button2.clicked.connect(self.on_click)
                
                        grid = QGridLayout()
                
                        grid.addWidget(self.textbox, 0, 0, 0, 3)
                        grid.addWidget(self.textbox2, 0, 3, 0, 3)
                        grid.addWidget(self.button, 1, 1, 1, 1)
                        grid.addWidget(self.button2, 1, 4, 1, 1)
                
                        self.setWindowTitle(self.title)
                        self.setGeometry(self.left, self.top, self.width, self.height)
                
                        self.centralWidget().setLayout(grid)
                        self.show()
                
                    def openFileNameDialog(self):
                        options = QFileDialog.Options()
                        options |= QFileDialog.DontUseNativeDialog
                        fileName, _ = QFileDialog.getOpenFileName(self, "QFileDialog.getOpenFileName()", "",
                                                                  "All Files (*);;Comma seperated files (*.csv)", options=options)
                        if fileName:
                            self.textbox.setText(fileName)
                            print(fileName)
                
                    @pyqtSlot()
                    def on_click(self):
                        self.openFileNameDialog()
                        print('PyQt5 button click')
                
                if __name__ == '__main__':
                    app = QApplication(sys.argv)
                    ex = App()
                    sys.exit(app.exec_())
                
                if __name__ == '__main__':
                    main()
                

                推薦答案

                你必須在第2行建立一個Stretch,但在此之前你必須更正rowSpan:

                You have to establish a Stretch in row 2, but before that you must correct the rowSpan in:

                grid.addWidget(self.textbox, 0, 0, 0, 3)
                grid.addWidget(self.textbox2, 0, 3, 0, 3)
                

                為了理解,讓我們回顧一下文檔:

                To understand, let's review the docs:

                void QGridLayout::addWidget(QWidget *widget, int fromRow, intfromColumn, int rowSpan, int columnSpan, Qt::Alignment 對齊 =...)

                這是一個重載函數.

                此版本將給定的小部件添加到單元格網格中,跨越多個行/列.單元格將從 fromRow 開始,fromColumn 跨越rowSpan 行和 columnSpan 列.小部件將具有給定的對齊.

                This version adds the given widget to the cell grid, spanning multiple rows/columns. The cell will start at fromRow, fromColumn spanning rowSpan rows and columnSpan columns. The widget will have the given alignment.

                如果 rowSpan 和/或 columnSpan 為 -1,則小部件將分別延伸到底部和/或右邊緣.

                If rowSpan and/or columnSpan is -1, then the widget will extend to the bottom and/or right edge, respectively.

                也就是說,rowSpan 表示小部件將占用多少行,但您將其指示為 0,因此布局將不再處理大小而僅處理位置,您必須將其更改為 1.

                That is, the rowSpan indicates how many rows the widget will occupy, but you are indicating it to 0 so the size will no longer be handled by the layout but only the position, you must change it to 1.

                import sys
                from PyQt5 import QtCore, QtGui, QtWidgets
                
                
                class App(QtWidgets.QMainWindow):
                    def __init__(self):
                        super().__init__()
                        self.title = 'Data visualizing'
                        self.left, self.top, self.width, self.height = 50, 50, 300, 100
                        self.initUI()
                
                    def initUI(self):
                        self.central_widget = QtWidgets.QWidget()
                        self.setCentralWidget(self.central_widget)
                
                        # Create textboxs
                        self.textbox = QtWidgets.QLineEdit(readOnly=True)
                        self.textbox2 = QtWidgets.QLineEdit(readOnly=True)
                
                        # Create buttons
                        self.button = QtWidgets.QPushButton('Load file 1', 
                            toolTip = 'Click here to browse for the first data file')
                        self.button.clicked.connect(self.on_click)
                        self.button2 = QtWidgets.QPushButton('Load file 2',
                            toolTip = 'Click here to browse for the first data file')
                        self.button2.clicked.connect(self.on_click)
                
                        grid = QtWidgets.QGridLayout(self.centralWidget())
                
                        grid.addWidget(self.textbox, 0, 0, 1, 3)
                        grid.addWidget(self.textbox2, 0, 3, 1, 3)
                        grid.addWidget(self.button, 1, 1, 1, 1)
                        grid.addWidget(self.button2, 1, 4, 1, 1)
                        grid.setRowStretch(2, 1)
                
                        self.setWindowTitle(self.title)
                        self.setGeometry(self.left, self.top, self.width, self.height)
                        self.show()
                
                    def openFileNameDialog(self):
                        options = QtWidgets.QFileDialog.Options()
                        options |= QtWidgets.QFileDialog.DontUseNativeDialog
                        fileName, _ = QtWidgets.QFileDialog.getOpenFileName(self, "QFileDialog.getOpenFileName()", "",
                                                                  "All Files (*);;Comma seperated files (*.csv)", options=options)
                        if fileName:
                            self.textbox.setText(fileName)
                            print(fileName)
                
                    @QtCore.pyqtSlot()
                    def on_click(self):
                        self.openFileNameDialog()
                        print('PyQt5 button click')
                
                if __name__ == '__main__':
                    app = QtWidgets.QApplication(sys.argv)
                    ex = App()
                    sys.exit(app.exec_())
                
                if __name__ == '__main__':
                    main()
                

                這篇關于在QMainWindow中放置一個小部件,如何定位而不是setCentralWidget的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!

                【網站聲明】本站部分內容來源于互聯網,旨在幫助大家更快的解決問題,如果有圖片或者內容侵犯了您的權益,請聯系我們刪除處理,感謝您的支持!

                相關文檔推薦

                How to bind a function to an Action from Qt menubar?(如何將函數綁定到 Qt 菜單欄中的操作?)
                PyQt progress jumps to 100% after it starts(PyQt 啟動后進度躍升至 100%)
                How to set yaxis tick label in a fixed position so that when i scroll left or right the yaxis tick label should be visible?(如何將 yaxis 刻度標簽設置在固定位置,以便當我向左或向右滾動時,yaxis 刻度標簽應該可見
                `QImage` constructor has unknown keyword `data`(`QImage` 構造函數有未知關鍵字 `data`)
                Change x-axis ticks to custom strings(將 x 軸刻度更改為自定義字符串)
                How to show progress bar while saving file to excel in python?(如何在python中將文件保存為excel時顯示進度條?)
                  <bdo id='8jLhF'></bdo><ul id='8jLhF'></ul>
                  • <i id='8jLhF'><tr id='8jLhF'><dt id='8jLhF'><q id='8jLhF'><span id='8jLhF'><b id='8jLhF'><form id='8jLhF'><ins id='8jLhF'></ins><ul id='8jLhF'></ul><sub id='8jLhF'></sub></form><legend id='8jLhF'></legend><bdo id='8jLhF'><pre id='8jLhF'><center id='8jLhF'></center></pre></bdo></b><th id='8jLhF'></th></span></q></dt></tr></i><div class="qwawimqqmiuu" id='8jLhF'><tfoot id='8jLhF'></tfoot><dl id='8jLhF'><fieldset id='8jLhF'></fieldset></dl></div>

                  • <small id='8jLhF'></small><noframes id='8jLhF'>

                      <tbody id='8jLhF'></tbody>

                        <tfoot id='8jLhF'></tfoot><legend id='8jLhF'><style id='8jLhF'><dir id='8jLhF'><q id='8jLhF'></q></dir></style></legend>

                        1. 主站蜘蛛池模板: 狠狠色综合久久丁香婷婷 | 91国内外精品自在线播放 | 亚洲精品在线观 | 国产区精品在线观看 | 午夜影院在线观看视频 | 成人日韩精品 | av色站 | 一级黄色片日本 | 日韩中文字幕网 | 免费 视频 1级 | 久久香焦| 综合色站导航 | 中文字幕一级 | 亚洲在线免费 | 日韩欧美专区 | 国产乱码高清区二区三区在线 | 精品美女 | 日韩av一区在线观看 | 久久久www成人免费精品 | 中文字幕一区二区三区四区五区 | 国产高清在线观看 | 免费v片在线观看 | 亚洲国产欧美在线 | 亚洲网站在线观看 | 久久久做| 在线播放一区二区三区 | 一区二区三区国产 | 成人精品国产一区二区4080 | 精品久久久精品 | 在线黄 | 欧美日韩一区精品 | 国产精品夜夜春夜夜爽久久电影 | 国产精品福利在线 | 一区免费 | 亚洲欧美成人影院 | 激情视频一区 | 精品久久香蕉国产线看观看亚洲 | 视频一区在线 | 91精产国品一二三区 | 精品欧美一区二区三区久久久 | 国产一二三区精品视频 |