QTableWidgetItem中ICON和Text的布局问题

bolin123 2012-08-29 09:53:19
想用QTableWidget做一个类似windows资源管理器的东西,现在用QTableWidgetItem(QIcon &icon,QString &text)new一个item到table中,默认的是icon和text是左右排列在一个table里面。我想让icon在上面text在下面,不知道如何实现。就是想把icon和text的左右布局改成上下排列,查了很久没有发现有相关的函数设置。哪位大佬能帮帮忙?
...全文
1158 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
虫虫虫虫子 2013-04-24
  • 打赏
  • 举报
回复
windows资源管理的图标是自己设置一个固定大小,当名字长度超过后就换行。你可以计算输入名字的长度,然后换行,就不会出现你说的情况了
bolin123 2012-09-03
  • 打赏
  • 举报
回复
ding
bolin123 2012-08-31
  • 打赏
  • 举报
回复
自己小顶一下,问题还没解决,如何强制图标下面文字的长度呢?
bolin123 2012-08-30
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]

没有用QTableWidget做资源管理器的吧,都是QListWidget,设置为IconMode。就是你要的样子
上面一个图标,下面是文字。
[/Quote]
多谢。刚才试了一下QListWidget的确能实现这种形式,但是又发现了另一个问题,就是当修改QListWidget里面的item的text时,如果text内容过短或者过长都会整个布局变得不整齐,如下图:

本来图标都能整齐的排列,但是一旦修改了名称之后布局就乱了,请问怎么能够让改变文字但不影响布局呢?


MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
ui->listWidget->setViewMode(QListView::IconMode);
ui->listWidget->setResizeMode(QListView::Adjust);
//ui->listWidget->setIconSize(QSize(96, 84));
ui->listWidget->setTextElideMode(Qt::ElideRight);
ui->listWidget->setSpacing(12);
createIcons();
}

void MainWindow::createIcons()
{
for(int i=0; i<55; i++)
{
QListWidgetItem *configButton = new QListWidgetItem(ui->listWidget);
configButton->setIcon(QIcon(":/images/config.png"));
configButton->setText(tr("Configuration"));
configButton->setTextAlignment(Qt::AlignHCenter);
configButton->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled | Qt::ItemIsEditable | Qt::ItemIsDragEnabled);

//ui->listWidget->setCurrentItem(configButton);
}
ui->listWidget->setFlow(QListView::LeftToRight);
ui->listWidget->update();
}
jdwx 2012-08-30
  • 打赏
  • 举报
回复
没有用QTableWidget做资源管理器的吧,都是QListWidget,设置为IconMode。就是你要的样子
上面一个图标,下面是文字。
bolin123 2012-08-30
  • 打赏
  • 举报
回复
没有人用过吗?自己顶一下

16,215

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧