• 4466阅读
  • 1回复

[提问]在QTabWidget中添加QlistWidget到tab,为什么第一个tab的listWidget排列跟其他的刚好相反 [复制链接]

上一主题 下一主题
离线iamli01
 

只看楼主 倒序阅读 楼主  发表于: 2017-07-18
求助!!我在QTabWidget中添加QlistWidget到tab,为什么第一个tab的listWidget排列跟其他的刚好相反。无论我设置横排还是竖排,第一个tab都是相反....

addTab 的代码
  1. //后面需要从数据库中获取房间号roomNo来添加tab
  2.     for (int roomNo = 1; roomNo <= 3; ++roomNo) {
  3.         QListWidget *listWidget = new QListWidget();
  4.         this->addButtonToList(roomNo, listWidget);
  5.         ui->tableTabWidget->addTab(listWidget, QString("餐厅%1").arg(roomNo));
  6.         //QIcon icon1(":/new/icon/images/1.ico");
  7.         //tabWidget->addTab(widget, icon1, "Tab1");
  8.     }


创建listWidget的代码,设置了横排

  1. //往listWidget中添加内容
  2. void MainWindow::addButtonToList(int roomNo, QListWidget *listWidget)
  3. {
  4.     //设置图片排列
  5.     listWidget->setViewMode(QListView::IconMode);
  6.     //设置listwidget中的按钮不准拖动
  7.     listWidget->setMovement(QListView::Static);
  8.     //listWidget->setDragEnabled(false);
  9.     //设置ListWidget是否可以自动排序,默认是false
  10.     //listWidget->setSortingEnabled(true);
  11.     //qt给的demo中configdialog的例子中默认是竖向的
  12.     //listWidget->setFlow(QListView::TopToBottom);
  13.     listWidget->setFlow(QListView::LeftToRight);
  14.     //设置item图标大小
  15.     listWidget->setIconSize(QSize(100, 80));
  16.     // 需要根据roomNo从数据库中获取餐桌
  17.     for (int var = 1; var <= 35; var++) {
  18.         listWidget->addItem(new QListWidgetItem(QIcon(":/image/image/table.png"), QString("餐桌%1").arg(var)));
  19.     }
  20.     listWidget->setViewMode(QListView::IconMode);
  21.     //设置样式,直接在函数中设置
  22.     listWidget->setStyleSheet("QListWidget{border:1px solid gray; color:black; }"
  23.                               "QListWidget::Item{padding-top:20px; padding-bottom:4px; }"
  24.                               "QListWidget::Item:hover{background:skyblue; }"
  25.                               "QListWidget::item:selected{background:lightblue; color:red; }"
  26.                               "QListWidget::item:selected:!active{border-width:0px; background:lightgreen; }"
  27.                               );
  28.     // 双击信号
  29.     //connect(listWidget,SIGNAL(itemDoubleClicked(QListWidgetItem *p)),this,SLOT());
  30. }



运行结果:
第一个tab中的listWidget排列方式竖排,使用  listWidget->setFlow(QListView::LeftToRight); 设置了横排

第二个和第三个tab我设置的横排,结果也是横排


求大神解惑
离线iamli01

只看该作者 1楼 发表于: 2017-07-19
没人搭理自己先回复个记录下,昨晚上测出来我setCurrentIndex 哪个tab,就会跟别的tab的排列相反,而且不会自动换行之类的....
快速回复
限100 字节
 
上一个 下一个