我得QTableWidget只有一列,但是文本内容会很长,看不到的部分想用水平滚动条拖动显示,这样能做到吗?
4条回答 默认 最新
关注
引自免费微信小程序:皆我百晓生
当然可以。在Qt中,可以通过设置
QTableView
的属性来实现这个功能。你需要创建一个QScrollArea
来包含你的QTableWidget
,然后调整相关属性以启用水平滚动条。以下是详细的步骤和示例代码:
- 首先,确保已经包含了必要的头文件:
#include <QApplication> #include <QWidget> #include <QGridLayout> #include <QScrollArea> #include <QTableWidget> #include <QTableWidgetItem>
- 创建主窗口(这里以继承自
QWidget
为例)并设置布局:
class MyWindow : public QWidget { public: MyWindow(QWidget *parent = nullptr) : QWidget(parent) { // 设置窗口大小 setFixedSize(400, 300); // 创建QGridLayout QGridLayout *layout = new QGridLayout(this); layout->setContentsMargins(0, 0, 0, 0); // 去除边距 // 创建QScrollArea QScrollArea *scrollArea = new QScrollArea; scrollArea->setHorizontalScrollBarPolicy(Qt::ScrollBarAsNeeded); scrollArea->setBackgroundRole(QPalette::Dark); scrollArea->setWidgetResizable(true); // 创建QTableWidget QTableWidget *tableWidget = new QTableWidget; tableWidget->setColumnCount(1); tableWidget->setRowCount(5); // 这里只是示例,你可以根据需要设置行数 tableWidget->horizontalHeader()->setVisible(false); // 隐藏水平标题 tableWidget->verticalHeader()->setVisible(false); // 隐藏垂直标题 // 添加长文本到单元格 for (int i = 0; i < tableWidget->rowCount(); ++i) { QTableWidgetItem *item = new QTableWidgetItem( "This is a very long text that will cause overflow if not handled properly."); item->setTextAlignment(Qt::AlignCenter); tableWidget->setItem(i, 0, item); } // 将QTableWidget添加到QScrollArea中 scrollArea->setWidget(tableWidget); // 将QScrollArea添加到QGridLayout中 layout->addWidget(scrollArea); } };
这段代码首先创建了一个继承自
QWidget
的窗口,并设置了窗口的大小和布局为QGridLayout
。接着,我们创建了QScrollArea
和QTableWidget
,并将QTableWidget
添加到QScrollArea
中。为了防止文本溢出,我们将表格的水平滚动条策略设置为Qt::ScrollBarAsNeeded
,这意味着只有当内容超出视口时才会显示滚动条。- 最后,创建应用程序实例并显示窗口:
int main(int argc, char *argv[]) { QApplication app(argc, argv); MyWindow window; window.show(); return app.exec(); }
运行上述代码,你会看到一个带有水平滚动条的窗口,可以用来滚动查看长文本。你可以根据实际需求修改文本内容、行数等。
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用
悬赏问题
- ¥20 python忆阻器数字识别
- ¥15 无法输出helloworld
- ¥15 高通uboot 打印ubi init err 22
- ¥20 PDF元数据中的XMP媒体管理属性
- ¥15 R语言中lasso回归报错
- ¥15 网站突然不能访问了,上午还好好的
- ¥15 有没有dl可以帮弄”我去图书馆”秒选道具和积分
- ¥15 semrush,SEO,内嵌网站,api
- ¥15 Stata:为什么reghdfe后的因变量没有被发现识别啊
- ¥15 振荡电路,ADS仿真