QT 表格設定左上角按鈕
QT表格模型沒有提供訪問左上角按鈕的API, 檢視qtableview.cpp 發現其中有一個QTableCornerButton的私有類, 既然AP沒有暴露出該類, 那我們如何設定左上角按鈕的顯示方式呢?
一. 設定左上角按鈕背景色
既然知道左上角按鈕就是QTableCornerButton, 我們就可以通過該類名設定該按鈕樣式
Cpp程式碼- table->setStyleSheet("QTableCornerButton::section{background-color:red;}");
二. 設定按鈕文字
雖然沒有提供直接的訪問方式,可以通過findChild()來定位到該按鈕,然後設定其文字及顯示寬度.
- class TableWidget:public QTableWidget
- {
- public:
- TableWidget(int rows, int cols, QWidget* parent = 0)
- : QTableWidget(rows, cols, parent)
- {
- QAbstractButton* btn = findChild<QAbstractButton*>();
- if (btn)
- {
-
btn->setText("Text"
- btn->installEventFilter(this);
- // adjust the width of the vertical header to match the preferred corner button width
- // (unfortunately QAbstractButton doesn't implement any size hinting functionality)
- QStyleOptionHeader opt;
-
opt.text = btn->text();
- QSize s = (btn->style()->sizeFromContents(QStyle::CT_HeaderSection, &opt, QSize(), btn).
- expandedTo(QApplication::globalStrut()));
- if (s.isValid())
- verticalHeader()->setMinimumWidth(s.width());
- }
- }
- bool eventFilter(QObject* o, QEvent* e)
- {
- if (e->type() == QEvent::Paint)
- {
- QAbstractButton* btn = qobject_cast<QAbstractButton*>(o);
- if (btn)
- {
- // paint by hand (borrowed from QTableCornerButton)
- QStyleOptionHeader opt;
- opt.init(btn);
- QStyle::State state = QStyle::State_None;
- if (btn->isEnabled())
- state |= QStyle::State_Enabled;
- if (btn->isActiveWindow())
- state |= QStyle::State_Active;
- if (btn->isDown())
- state |= QStyle::State_Sunken;
- opt.state = state;
- opt.rect = btn->rect();
- opt.text = btn->text(); // this line is the only difference to QTableCornerButton
- opt.position = QStyleOptionHeader::OnlyOneSection;
- QStylePainter painter(btn);
- painter.drawControl(QStyle::CE_Header, opt);
- return true; // eat event
- }
- }
- return false;
- }
- };
執行效果:
文章 來源:http://tcspecial.iteye.com/blog/1923063
相關推薦
QT 表格設定左上角按鈕
QT表格模型沒有提供訪問左上角按鈕的API, 檢視qtableview.cpp 發現其中有一個QTableCornerButton的私有類, 既然AP沒有暴露出該類, 那我們如何設定左上角按鈕的顯示方式呢? 一. 設定左上角按鈕背景色 既然知道左上角按
QT 中設定按鈕圖片和文字的兩種方法
1.使用QpushButton自帶的API實現: void setIcon(const QIcon &icon) void setText(const QString &text) 該方法使用了自帶的函式設定,缺點是無法自由調整圖示和文字之間的間距 2.使用Qlabel和佈局
QT設定ToolButton按鈕的樣式
QToolButton{ min-width:80px; min-height:32px; } QToolButton{ color:rgb(255, 255, 255); min-height:20; border-style:
QT 4 設定按鈕大小,設定wigdet 大小例子(除錯通過)
classMywidget:publicQWidget { Q_OBJECT public: explicitMywidget(QWidget*parent=0); signals: publicslots: private: QPushButton*TestPushButt
Angular4 後臺管理系統搭建(3) - wijmo5 flexgrid表格增刪改按鈕實現
-a bsp pack github 技術分享 lease 需要 lec 獲取 這章應該是wijmo5 flexgrid表格應用的最後一章,我們在三章內介紹了flexgrid表格組件的數據綁定,分頁器搭建,單元格模板控制和代碼重繪單元格控制。這章在介紹下對表格添加增刪改
蘋果手機左上角按鈕返回不刷新
page 必須 按鈕 刷新 底部導航 跳轉 丟失 返回 切換 在實際項目中,點擊底部導航,跳轉到不同的頁面,而且相對應的按鈕加active 類名,改變其背景圖 pc, 安卓返回都木有問題,但是蘋果手機左上角點擊返回按鈕時出現active不會切換和從上一頁返回後需要改變的底部
antd Table表格 單選按鈕
效果圖: 引入antd的表格後: <Table bordered columns={columns} dataSource={dataSource} rowSelection={rowRadioSelection} pagination={false}rowKey={dataSource
Java--對接微信第五篇之底部選單按鈕url設定(通過按鈕回撥獲取openid)
在上一篇的基礎上,有一個地方是需要去微信公眾平臺設定的(如果你這個url需要獲取使用者openid的話!如果不需要獲取可以無視) 登入微信公眾平臺-->公眾號設定-->選擇功能設定-->設定網頁授權域名(為微信認為安全的地址,不用精確到方法,但是你需要將一個文字金鑰放入對應
layui中彈出層中將確認按鈕變為form表格的提交按鈕
layer.open({ type : 1, title : '新增角色', area : [ '500px', '350px' ], shadeClose : true, // 點選遮罩關閉 content : html, btn : [ '儲存', '取消' ], s
JTable表格設定隔行顏色
定義函式,隔行設定表格背景色 在表格顯示之前呼叫,setColumnColor(table);,table是你新建的表格。 public static void setColumnColor(JTable table) { try { Default
Qt QDialog 設定圓角
對於普通的控制元件,我們通過樣式表(css)設定圓角就比較簡單 border-radius:5px 但是這個方法對於QDialog並沒有作用。經過仔細研究發現了。原來QDialog只是一個容器,對於已經設定無邊框(Qt::FramelessWindowHint)的對話方塊,直接設定border-radiu
QT點選"X"按鈕,呼叫closeEvent()函式來實現呼叫特定事件
背景: QT在使用者關閉視窗(直接點選"X"鍵)時,程式一般都需要做一些善後的事情,就我現在的程式來說,既關閉USB。如何實現? 正文: 首先,在對應窗體的".h"檔案包含 #include <QCloseEvent>;的標頭檔案。 其
Qt中設定QTableWidget的表頭高度
關鍵就是 ui->tableWidget->horizontalHeader()->setMinimumHeight(30); ui->tableWidget->set
QT comboBox設定下拉選單()
設定combobox的item方法有兩種 方法一:適合有規律的,可利用for迴圈減少程式碼量,當然也可以一個一個插入 方法二:適合無規律的 程式碼如下 //方法一: for (int i
QT學習---day1---視窗按鈕的操作
//qt學習筆記: //12_7 //跨平臺,完全面向物件,容易擴充套件,容易組建程式設計。 //QWidget 和 QMainWindow 和 QDialog 之間的關係。 //QWidget是基類,QMainWindow 和 QDialog 是子類。 /* QWidget 是
Android Studio裡設定了按鈕,開發到手機上,點開按鈕,卻發現沒有跳到下一個介面,而是閃退的原因
如果你在介面設定了按鈕,開發到手機上,點開按鈕,卻發現沒有跳到下一個介面,而是閃退。 原因是因為你沒有在左圖的xml檔案裡把結果的目標activity這3行寫進去。寫進去之後再重新下載到手機上,就可以了。
Qt如何設定某個區域透明
方法:過載paintEvent,在區域內重新繪製 程式碼: void UIMainWindow::paintEvent(QPaintEvent* event) { QPainter p(this); p.setCompositionMode(QPainter::Composi
Qt——軟體設定引數檔案快速讀取
每個軟體多多少少都會存在一些自己的引數,需要依靠配置檔案對軟體進行後臺改動,當引數數量不是很多的時候解析不是很困難,但是如果引數數量比較多的時候在解析的時候會比較麻煩的。 .ini 檔案是Initialization File的縮寫,即初始化檔案,是windows的系統配置檔
bootstrap 表格設定列固定寬度以及內容自動換行的CSS
<style type="text/css"> #contentTable{ table-layout:fixed; /* bootstrap-table設定colmuns中某列的寬度無效時,需要給整個表設定css屬性 */ word-break:break-all;
Qt 佈局設定stretch,不起作用解決方法
addWidget(QWidget *widget, int stretch = 0, Qt::Alignment alignment = Qt::Alignment()) insertStretch(int index, int stretch = 0) setStretchFactor(