您的位置:首页 > 编程语言 > Qt开发

QT widget 使用小计

2016-11-14 22:15 239 查看

push button

信号:clicked()

实例代码:

connect(ui->lxpushButton, SIGNAL(clicked()), this, SLOT(myslots()));


tool box

实例代码:

action = new QAction("&Open", this);
action2 = new QAction("&Close", this);
menu = new QMenu();

QList<QAction *> fileActions;
fileActions.push_back(action);
fileActions.push_back(action2);
menu->addMenu("&File")->addMenu("web safe")->addActions(fileActions);
menu->addMenu("&Edit")->addMenu("app safe")->addActions(fileActions);

ui->lxtoolButton->setText("tool box");
ui->lxtoolButton->setPopupMode(QToolButton::InstantPopup);
ui->lxtoolButton->setMenu(menu);
connect(ui->lxtoolButton, SIGNAL(triggered(QAction *)), this, SLOT(paction(QAction *)));


效果:



group box

实例代码:

ui->gbSetNetWork->setChecked(false);
ui->gbSetNetWork->setStyleSheet(
QString::fromUtf8("QGroupBox\
{ border: 1px solid green; \ // 设置边框1个像素,绿色填充
border-radius: 4px; \      // 实现圆角边框效果,第一个参数是水平半径
margin-top: 6px\           // 设置对象顶边的外延边距,外延边距始终透明
}\
QGroupBox::title{top: -9 ex; left:8px}}")); // 设置标题显示的样式


效果:



QToolBox

信号: currentChanged

实例代码:

connect(ui->toolBox, SIGNAL(currentChanged(int)), this, SLOT(GetCurrent(int)));


QTabWidget

信号:

tabCloseRequested(int)
currentChanged(int)


实例代码:

MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);

connect(ui->tabWidget, SIGNAL(tabCloseRequested(int)), this, SLOT(CloseTab(int)));

connect(ui->tabWidget, SIGNAL(currentChanged(int)), this, SLOT(PrintTab(int)));
}

void MainWindow::CloseTab(int index)
{
ui->tabWidget->removeTab(index);
}

void MainWindow::PrintTab(int index)
{
qDebug() << "print tab " << index;
}


属性:

属性名注释
tabsClosable设置Tab是否可以关闭
movable设置Tab是否可以左右拖动
TabShape设置Tab的形状
效果:



QComboBox

信号:

信号名注释
activated (int index) (const QString&)点击任意一项即会触发,SetCurrentIndex调用时不会触发
currentIndexChanged (int index) (const QString&)点击任意一项即会触发,SetCurrentIndex调用时也会触发
editTextChanged (int index) (const QString&)当combobox属性edit是true时,如果修改文本,该信号在每次输入时会触发
highlighted (int index) (const QString&)combobox中鼠标放在任何一个选项上即会触发
实例代码:

MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);

connect(ui->comboBox, SIGNAL(activated(const QString&)), this, SLOT(ActivatedGet(const QString&)));
connect(ui->comboBox, SIGNAL(currentIndexChanged(int)), this, SLOT(currentIndexChangedGet(int)));
connect(ui->comboBox, SIGNAL(editTextChanged(const QString&)), this, SLOT(editText(const QString &)));
connect(ui->comboBox, SIGNAL(highlighted(const QString&)), this, SLOT(high(const QString&)));
}

void MainWindow::ActivatedGet(const QString &str)
{
qDebug() << "activated " << str;
}

void MainWindow::currentIndexChangedGet(int index)
{
qDebug() << "currentIndexChanged " << index;
}

void MainWindow::editText(const QString &str)
{
qDebug() << "editTextChanged " << str;
}

void MainWindow::high(const QString &str)
{
qDebug() << "highlighted" << str;
}


属性:

属性名注释
editable设置combobox是否可以修改内容
效果:



QLineEdit

信号:

信号名注释
cursorPositionChanged(int old, int cur)光标在编辑框中游走时即会出发,old标示光标之前的位置,cur标示现在位置
editingFinished()
returnPressed()按回车即触发
selectionChanged()鼠标选中条目时触发
textChanged(const QString&)文本改变时触发
textEdited(const QString&)文本改变时触发
实例代码:

ui->lineEdit_1->setValidator(new QIntValidator(1, 100, this));

QRegExp regx("[a-zA-Z0-9]+$");
QValidator *validator = new QRegExpValidator(regx, ui->lineEdit_2);
ui->lineEdit_2->setValidator(validator);

ui->lineEdit_3->setInputMask("000.000.000.000");

ui->lineEdit_4->setEchoMode(QLineEdit::Password);

connect(ui->lineEdit_1, SIGNAL(cursorPositionChanged(int, int)), this, SLOT(curChg(int, int)));
connect(ui->lineEdit_1, SIGNAL(editingFinished()), this , SLOT(editOver));
connect(ui->lineEdit_1, SIGNAL(returnPressed()), this, SLOT(returnPress()));
connect(ui->lineEdit_1, SIGNAL(selectionChanged()), this, SLOT(selectChanged()));
connect(ui->lineEdit_1, SIGNAL(textChanged(const QString&)), this, SLOT(textChange(const QString&)));
connect(ui->lineEdit_1, SIGNAL(textEdited(const QString&)), this, SLOT(textEdited(const QString&)));


效果:



QSpinBox

信号:

信号名注释
valueChanged(const QString &) (int)值是有效变化的时候即触发
实例代码:

connect(ui->spinBox, SIGNAL(valueChanged(const QString &)), this, SLOT(valChg(const QString &)));


属性:

属性名注释
wrapping当设置true时, 计数到最大值即反转到最小值重新计数
buttonSymbols设置spinBox显示按钮的风格
Minimum设置最小有效数
Maximum设置最大有效数
singleStep设置每次改变的步长
效果:



QDateTimeEdit

信号:

dateChanged(const QDate &)
timeChanged(const QTime &)
dateTimeChanged(const QDateTime &)


日期格式:

时间格式:

实例代码:

MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
connect(ui->dateTimeEdit, SIGNAL(dateChanged(const QDate &)), this, SLOT(dateChgGet(const QDate &)));
connect(ui->dateTimeEdit, SIGNAL(timeChanged(const QTime &)), this, SLOT(timeChgGet(const QTime &)));
connect(ui->dateTimeEdit, SIGNAL(dateTimeChanged(const QDateTime &)), this, SLOT(dateTimeChgGet(const QDateTime &)));

ui->dateTimeEdit->setTime(QTime::currentTime());
ui->dateTimeEdit->setDate(QDate::currentDate());
ui->dateTimeEdit->setDisplayFormat("yyyy.MM.dd aph:mm:ss:z");
ui->dateTimeEdit->setCalendarPopup(true);
}


效果:



QSlider

信号:

valueChanged(int)
sliderPressed()
sliderMoved(int)
sliderReleased()


实例代码:

MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);

connect(ui->horizontalSlider, SIGNAL(valueChanged(int)), this, SLOT(valChg(int)));
connect(ui->horizontalSlider, SIGNAL(sliderPressed()), this, SLOT(sliderPressed()));
connect(ui->horizontalSlider, SIGNAL(sliderMoved(int)), this, SLOT(sliderMoved(int)));
connect(ui->horizontalSlider, SIGNAL(sliderReleased()), this, SLOT(sliderRelease()));
}


属性:

tickPosition
tickInterval


效果:



QLabel

信号:

linkActivated(const QString &link)
linkHovered(const QString &link)


实例代码:

MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);

ui->label->setTextFormat(Qt::RichText);
ui->label->setText(tr("<a href=\"http://www.baidu.com/\">clicked me</a>"));

ui->label_3->setTextFormat(Qt::RichText);
ui->label_3->setText(tr("<font size=3 color=green><I>test</T></font>"));

QPixmap *p = new QPixmap(30, 20);
p->fill(Qt::darkMagenta);
ui->label_2->setPixmap(*p);

connect(ui->label, SIGNAL(linkHovered(const QString &)), this, SLOT(linkHovered(const QString &)));
connect(ui->label, SIGNAL(linkActivated(const QString &)), this, SLOT(linkActivated(const QString &)));
}


效果:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  qt widget 基础