Qt之布局管理——分割窗口


QSplitter類繼承於QFrame類,用於分割窗口的管理。

image

第一個參數是窗口分割方式,有下圖的兩個參數值可選(Qt::Horizontal為水平分割;Qt::Vertical為垂直分割)。

image

當然,也可以用以下方式聲明分割窗

image

再,利用函數setOrientation()函數設置分割方式。

image

要想獲取分割方式可利用Orientation()函數。

image


在該類中常用到的函數還有setOpaqueResize ( bool opaque = true ),用於設置分割窗的分割條在拖動時是否為實時更新顯示(默認為true/實時更新)。

setStretchFactor( int index, int stretch )用於設定可伸縮控件,它的第一個參數指定要設置控件的序號(按插入順序從0依次編號);第二個參數大於0時表示此控件為可伸縮控件。


mian.cpp

#include <QtGui/QApplication>
#include <QSplitter>
#include <QTextEdit>
#include <QTranslator>

int main(int argc, char *argv[])
{
	QApplication a(argc, argv);

	//語言:
	QTranslator translator;
	translator.load("splitter_CN.qm");
	a.installTranslator(&translator);

	
	//主分割窗口:
	QSplitter *splitterMain = new QSplitter(Qt::Horizontal,0);
	QTextEdit *edtLeft = new QTextEdit(QObject::tr("Left Widget"),splitterMain);
	edtLeft->setAlignment(Qt::AlignCenter);
	//右部分割窗口:
	QSplitter *splitterRight = new QSplitter(Qt::Vertical,splitterMain);
	splitterRight->setOpaqueResize(false);
	QTextEdit *edtUp = new QTextEdit(QObject::tr("Top Widget"),splitterRight);
	edtUp->setAlignment(Qt::AlignCenter);
	QTextEdit *edtBottom = new QTextEdit(QObject::tr("Bottom Widget"),splitterRight);
	edtBottom->setAlignment(Qt::AlignCenter);

	splitterMain->setStretchFactor(1,1);
	splitterMain->setWindowTitle(QObject::tr("Splitter"));

	splitterMain->show();

	return a.exec();
}

本例中還用到了QTextEdit類的setAlignment(Qt::Alignment a)方法,用於設定TextEdit對象中字體的對齊方式。

Qt::AlignLeft        左對齊

Qt::AlignRight       右對齊

Qt::AlignHCenter     居中

Qt::AlignTop         頂部對齊

Qt::AlignBottom      底部對齊



免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM