python 动态调整控件大小_python PyQt5如何让窗口控件与窗口大小同步变化?
在下面的代碼中 self.tableWidget.resize(self.width()-20,self.height()-20)
self.tableWidget.move(10,20)
這兩行沒(méi)有起作用?不知為何?
from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtGui import QIcon
from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
import pandas as pd
import numpy as np
class Ui_MainWindow(QMainWindow):
def __init__(self):
super(QtWidgets.QMainWindow,self).__init__()
self.setupUi(self)
self.retranslateUi(self)
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(666, 488)
self.centralWidget = QtWidgets.QWidget(MainWindow)
self.centralWidget.setObjectName("centralWidget")
self.retranslateUi(MainWindow)
self.tableWidget = QtWidgets.QTableWidget(self.centralWidget)
self.tableWidget.setGeometry(QtCore.QRect(0, 40, self.geometry().width(), self.geometry().height()-40))
self.tableWidget.setObjectName("tableWidget")
self.tableWidget.setColumnCount(0)
self.tableWidget.setRowCount(0)
self.tableWidget.setStyleSheet("selection-background-color:pink")
self.tableWidget.setEditTriggers(QAbstractItemView.NoEditTriggers)
self.tableWidget.raise_()
self.pushButton = QtWidgets.QPushButton(self.centralWidget)
self.pushButton.setGeometry(QtCore.QRect(90, 20, 75, 23))
self.pushButton.setObjectName("pushButton")
self.pushButton.setText("打開(kāi)")
MainWindow.setCentralWidget(self.centralWidget)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
self.pushButton.clicked.connect(self.openfile)
self.pushButton.clicked.connect(self.creat_table_show)
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "一顆數(shù)據(jù)小白菜"))
def openfile(self):
###獲取路徑===================================================================
openfile_name = QFileDialog.getOpenFileName(self,'選擇文件','','Excel files(*.xlsx , *.xls)')
#print(openfile_name)
global path_openfile_name
###獲取路徑====================================================================
path_openfile_name = openfile_name[0]
def resizeEvent(self, e):
#self.tableWidget.setGeometry(QtCore.QRect(0, 40, self.geometry().width(), self.geometry().height()-40))
#QtWidgets.QWidget.resizeEvent(self, e)
self.tableWidget.resize(self.width()-20,self.height()-20)
self.tableWidget.move(10,20)
def creat_table_show(self):
###===========讀取表格,轉(zhuǎn)換表格,===========================================
if len(path_openfile_name) > 0:
input_table = pd.read_excel(path_openfile_name)
#print(input_table)
input_table_rows = input_table.shape[0]
input_table_colunms = input_table.shape[1]
#print(input_table_rows)
#print(input_table_colunms)
input_table_header = input_table.columns.values.tolist()
#print(input_table_header)
###===========讀取表格,轉(zhuǎn)換表格,============================================
###======================給tablewidget設(shè)置行列表頭============================
self.tableWidget.setColumnCount(input_table_colunms)
self.tableWidget.setRowCount(input_table_rows)
self.tableWidget.setHorizontalHeaderLabels(input_table_header)
###======================給tablewidget設(shè)置行列表頭============================
###================遍歷表格每個(gè)元素,同時(shí)添加到tablewidget中========================
for i in range(input_table_rows):
input_table_rows_values = input_table.iloc[[i]]
#print(input_table_rows_values)
input_table_rows_values_array = np.array(input_table_rows_values)
input_table_rows_values_list = input_table_rows_values_array.tolist()[0]
#print(input_table_rows_values_list)
for j in range(input_table_colunms):
input_table_items_list = input_table_rows_values_list[j]
#print(input_table_items_list)
# print(type(input_table_items_list))
###==============將遍歷的元素添加到tablewidget中并顯示=======================
input_table_items = str(input_table_items_list)
newItem = QTableWidgetItem(input_table_items)
newItem.setTextAlignment(Qt.AlignHCenter|Qt.AlignVCenter)
self.tableWidget.setItem(i, j, newItem)
###================遍歷表格每個(gè)元素,同時(shí)添加到tablewidget中========================
else:
self.centralWidget.show()
if name == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
MainWindow = QtWidgets.QMainWindow()
ui = Ui_MainWindow()
ui.setupUi(MainWindow)
MainWindow.show()
sys.exit(app.exec_())
下面的代碼
from PyQt5.Qt import * #剛開(kāi)始學(xué)習(xí)可以這樣一下導(dǎo)入
import sys,time
class Window(QWidget):
def __init__(self):
super().__init__()
self.setWindowTitle("QLineEdit 輸出模式的案例")
self.resize(400,400)
self.set_ui()
self.i = 1
def set_ui(self):
self.account_lineEdit = QLineEdit(self)
self.pwd_lineEdit = QLineEdit(self)
self.btn = QPushButton(self)
def resizeEvent(self, event):
widget_w = 150
widget_h = 30
widget_h_margin = 10
top_margin = 50
self.account_lineEdit.resize(self.width()-60,widget_h)
self.pwd_lineEdit.resize(widget_w,widget_h)
self.btn.setText("登 錄")
self.btn.resize(widget_w,widget_h)
x = (self.width() - widget_w)/2
y1 = top_margin
y2 = y1 + widget_h +widget_h_margin
y3 = y2 + widget_h +widget_h_margin
self.account_lineEdit.move(x,y1)
self.account_lineEdit.move(30,20)
self.pwd_lineEdit.move(x,y2)
self.btn.move(x,y3)
print(id(self.btn))
print(len(self.children()))
print("===",x,y1,y2,y3)
print("i = ",self.i)
self.i +=1
if name == "__main__":
app =QApplication(sys.argv)
window = Window()
window.show()
sys.exit(app.exec_())
下面的代碼正常
self.account_lineEdit.resize(self.width()-60,widget_h)
總結(jié)
以上是生活随笔為你收集整理的python 动态调整控件大小_python PyQt5如何让窗口控件与窗口大小同步变化?的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 如何在linux下启动和关闭oracle
- 下一篇: db2 jdbc驱动参数_JDBC详细整