我现在想使ui界面在不同分辨率的电脑上显示同样大小,在网上百度到了如何使控件自适应大小的方法,但是pushbutton或者textLine中的字体还是原来的大小,怎么解决?谢谢!
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
float currentScreenWid = QApplication::desktop()->width();
float currentScreenHei = QApplication::desktop()->height();
// QFont m=ui->textEdit->font();
// m.setPointSize(9);
float lfWidMultiple=currentScreenWid/1366;
float lfHeiMuiltiple=currentScreenHei/768;
ui->label->setScaledContents(true);
resetGrid(this,lfWidMultiple,lfHeiMuiltiple);
resetGrid(ui->groupBox,lfWidMultiple,lfHeiMuiltiple);
resetGrid(ui->pushButton,lfWidMultiple,lfHeiMuiltiple);
resetGrid(ui->tableWidget,lfWidMultiple,lfHeiMuiltiple);
resetGrid(ui->textEdit,lfWidMultiple,lfHeiMuiltiple);
resetGrid(ui->comboBox,lfWidMultiple,lfHeiMuiltiple);
resetGrid(ui->radioButton,lfWidMultiple,lfHeiMuiltiple);
resetGrid(ui->widget,lfWidMultiple,lfHeiMuiltiple);
QDesktopWidget *m_pdesktop=QApplication::desktop();
move((m_pdesktop->width()-this->width())/2,(m_pdesktop->height()-this->height())/2);
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::resetGrid(QWidget *widget, double lfFactorx, double lfFactory)
{
int widgetX = widget->x();
int widgetY = widget->y();
int widgetWid = widget->width();
int widgetHei = widget->height();
int nWidgetX = (int)(widgetX*lfFactorx);
int nWidgetY = (int)(widgetY*lfFactory);
int nWidgetWid = (int)(widgetWid*lfFactorx);
int nWidgetHei = (int)(widgetHei*lfFactory);
widget->setGeometry(nWidgetX,nWidgetY,nWidgetWid,nWidgetHei);
}
界面如下:
也百度,加入
QFont m=ui->textEdit->font();
m.setPointSize(9);
改变字体,说是setPointSize()会根据分辨率改变大小,但是并没有效果(字体大小没变,比如puahButton上的字体显示不全),求教——如何使ui界面的字体随分辨率变化?