Qt畫板 雜記
阿新 • • 發佈:2018-11-04
我的畫板效果演示 https://blog.csdn.net/afeiererer/article/details/83614697
帶選單的按鈕
QMenu *menu_paste = new QMenu; QAction *click_paste = new QAction(u8"貼上", this); QAction *click_paste_from = new QAction(u8"貼上來源", this); menu_paste->addAction(click_paste); menu_paste->addAction(click_paste_from); ui.pushButton->setMenu(menu_paste);
ps:不要箭頭。
pushButton->setStyleSheet("QPushButton::menu-indicator{image:none}");
改變按鈕顏色
如果不是要改變顏色,只是要個背景色,設定下StyleSheet就好。
ui.btn_colorview_1->setStyleSheet("QToolButton{background-color:Qt::red}");
排坑:but 這個方式不能傳變數,我曾像下面這麼寫,傻傻的錯了。
// ! ! ! 錯 誤 寫 法 執行不會報錯,但會是黑色 QColor b = Qcolor(255,255,255); ui.btn_colorview_1->setStyleSheet("QToolButton{background-color:b}");
下面是改顏色的正確寫法 。 注意:千萬不能設定background-color,否則要的顏色顯現不出來。
//顏色列表 QColor color_list[24] = { QColor(0,0,0), QColor(127, 127, 127),QColor(85, 0, 0),QColor(255, 0, 0)}; void QtGuiApplication1::updata_colorview() { ui.btn_colorview_2->setAutoFillBackground(true); ui.btn_colorview_2-> setPalette(QPalette(color)); /* 與上面那行等價 QPalette p = ui.btn_colorview_2->palette(); p.setColor(QPalette::Button, color); ui.btn_colorview_2->setPalette(p)*/ paintbox->setbcolor(color); } void QtGuiApplication1::on_btn_color_1_clicked() { color = color_list[0]; updata_colorview(); } void QtGuiApplication1::on_btn_color_2_clicked() { color = color_list[1]; updata_colorview(); }
不知道為什麼必須每次要寫這個,全域性設定一次是不行的。
ui.btn_colorview_2->setAutoFillBackground(true);
而且我不知道為什麼這樣按按鈕切換是好使的,但是用作初始化就不好使,於是初始是父容器的背景色。未解決。
按鈕點選事件
假如按鈕的 id是 btn_tool1 :
void QtGuiApplication1::on_btn_tool1_clicked()
{
//.......
}