在qt中绘制复杂的可打印表格
我怎样才能画出这样的桌子?我对此一无所知 易于理解的示例代码将很有帮助在qt中绘制复杂的可打印表格,qt,qtableview,Qt,Qtableview,我怎样才能画出这样的桌子?我对此一无所知 易于理解的示例代码将很有帮助 如果没有更多的上下文或更具体的解释,很难给出一个真正彻底的答案,但我最初的建议可能是尝试使用Qt的富文本支持。提供有关此的更多信息。特别要注意的是,支持,因此可以使用这些控件绘制任意HTML表 除此之外,我假设您已经查看了?编辑:对不起,我没有看到您想要Qt中的可打印表。我在QTableWidget元素中提供了一种方法 此代码未编译且未经测试,但我相信它适当地复制了您想要的表: const int ROW = 6; con
如果没有更多的上下文或更具体的解释,很难给出一个真正彻底的答案,但我最初的建议可能是尝试使用Qt的富文本支持。提供有关此的更多信息。特别要注意的是,支持
,因此可以使用这些控件绘制任意HTML表
除此之外,我假设您已经查看了?编辑:对不起,我没有看到您想要Qt中的可打印表。我在
QTableWidget
元素中提供了一种方法
此代码未编译且未经测试,但我相信它适当地复制了您想要的表:
const int ROW = 6;
const int COL = 8;
int main(int argc, char **argv) {
QApplication app(argc, argv);
QMainWindow *window = new QMainWindow();
window->resize(400, 250);
QTableWidget* table = new QTableWidget();
//Set table row count 1 and column count 3
table->setRowCount(ROW);
table->setColumnCount(COL);
table->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
// generate the table widgets (first column)
QTableWidgetItem* sl = new QTableWidgetItem("SL");
QTableWidgetItem* one = new QTableWidgetItem("1");
QTableWidgetItem* two = new QTableWidgetItem("2");
QTableWidgetItem* three = new QTableWidgetItem("3");
QTableWidgetItem* total = new QTableWidgetItem("Total");
//Add Table items here
table->setItem(0, 0, sl);
table->setSpan(0, 0, 2, 1); // set the sl span
table->setItem(0, 2, one);
table->setItem(0, 3, two);
table->setItem(0, 4, three);
table->setItem(0, 5, total);
// generate the table widgets for the second and third columns
QTableWidgetItem* unit1 = new QTableWidgetItem("Unit1");
unit1->setAlignment(Qt::AlignCenter);
QTableWidgetItem *unit2 = new QTableWidgetItem("Unit2");
unit2->setAlignment(Qt::AlignCenter);
QTableWidgetItem *unit3 = new QTableWidgetItem("Unit2");
unit3->setAlignment(Qt::AlignCenter);
QTableWidgetItem *comments = new QTableWidgetItem("Comments");
// set the unit things and comments
table->setItem(0, 1, unit1);
table->setSpan(0, 1, 1, 2);
table->setItem(0, 3, unit2)
table->setSpan(0, 3, 1, 2);
table->setItem(0, 5, unit3);
table->setSpan(0, 5, 1, 2);
table->setItem(0, 7, comments);
// now set up the product widgets
QTableWidgetItem *product = new QTableWidgetItem("Product");
QTableWidgetItem *product2 = new QTableWidgetItem("Product2");
table->setItem(1, 1, product);
table->setItem(1, 2, product2);
table->setItem(1, 3, product);
table->setItem(1, 4, product2);
table->setItem(1, 5, product);
table->setItem(1, 6, product2);
window->setCentralWidget(table);
window->show();
return app.exec();
}
我相信Qxt库能够像您在示例中一样创建标题。至于打印,我是通过生成html来实现的。我相信不久前我在这里已经回答了一个类似的问题,所以我会寻找答案。关于Qxt我可能错了。我在QxtHeaderView中似乎找不到这种能力,我看到人们在谈论打印,但在问题的哪里提到了打印?他只是问“我怎么能画桌子”——画桌子的目的不明。无论如何,如果你想打印它,那么我认为富文本/HTML是你最好的选择,或者如果它只在应用程序本身中使用,那么QTableView。当前标题是“在qt中绘制复杂的可打印表”。对我来说,可打印意味着用户希望能够将表格打印到打印机上。感谢您提供宝贵的示例代码。它按我想看到的那样工作。再次感谢!不过,这次我想从mysql数据库加载所有数据。我想知道是否可以将同样的技术应用于QSqlQueryModel。[对不起,我是新来的]不知道我是怎么做到的!帮我在QsqlQueryModel中完成它?我想我需要插入第一行,但它不会被自动覆盖吗?试着思考下一个层次的代码。为此提出一个新问题。完成!