hailler的个人主页

http://www.qtcn.org/bbs/u/183962  [收藏] [复制]

hailler

  • 0

    关注

  • 2

    粉丝

  • 26

    访客

  • 等级:新手上路
  • 总积分:25
  • 保密,2011-01-01

最后登录:2019-06-22

更多资料

日志

2018-01-27 16:35

自定义了一个model,又定义了view,delegate。
想实现自定义的readOnlydelegate 背景色显示为灰色, 以显示区别。
初始想法,直接在VIEW里改,可找不到函数,接着在delegate里用了paint() 函数,变成了整个颜色覆盖了,不能显示里面的文字。
最后只好在model里改了。好无奈。
虽然也可以在model 里添加函数,来自定义各个单元格的字体、颜色、背景色等,但这个和MVC的思想是不是有点违背?反过来想,字体颜色等也是数据,当然得存在model

QVariant TableModel::data(const QModelIndex &index, int role) const
{
if (!index.isVali ..

阅读全文»分类:默认分类|回复:0|浏览:808
2018-01-14 16:55

enum SomeEnum { Value1, Value2, Value3 };
Q_DECLARE_OPERATORS_FOR_FLAGS( QFlags <SomeEnum>)
// The previous line declares
// Q_DECL_CONSTEXPR QFlags<SomeValue> operator|(SomeValue,SomeValue) {...}

int someFunction( QFlags <SomeEnum> value) {
switch (value) {
case SomeEnum::Value1:
return 1 ;
case SomeEnum::Value2:
return 2 ;
case SomeEnum::Value1 | SomeEnum::Value3:
// Only possible with C++11 and because QFlags operators are constexpr
// Previously this line would ca ..

阅读全文»分类:默认分类|回复:0|浏览:756
2018-01-13 10:35

m_tableView->horizontalHeader ()->setSectionResizeMode (QHeaderView::Stretch);
接下来设置各种columnWidth 都无效了。
恢复默认
m_tableView->horizontalHeader ()->setSectionResizeMode (QHeaderView::Interactive);

阅读全文»分类:默认分类|回复:0|浏览:746
2018-01-13 10:28

做了个对话框,里面的按钮中文能显示,但是在mainwindows.cpp里面自己定义的TABLEVIEW里面的中文却全是乱码。
尝试了各种办法都无效。添加代码,改编码方式,都不行。
然后发现其他文件里面都能输入中文,切换到mainwindow.cpp里面,中文输入法神秘消失了。
然后用来一招搞笑的办法,随便建立新的cpp,把原来的mainwindows.cpp的代码拷贝过来,该文件名为mainwindows.cpp。居然好了。

阅读全文»分类:默认分类|回复:2|浏览:748
2017-11-09 21:52

被打印机名字,打印机支持的纸张名字,纸张的尺寸信息 搞得一头雾水。
想简单的实现一个功能,两个combobox,一个显示 支持的打印机名称,一个显示该打印机支持的纸张名称,改变打印机的同时,支持的纸张名称页改变。
可QPrinterInfo 类里只是支持 QPageSize,而需要自己从QPageSize 里自己提取 name。于是简单的做了个类,可以直接实现各个转换。


#ifndef QTEPRINTER_H
#define QTEPRINTER_H

#include <QString>
#include <QStringList>
#include <QList>
#include <QPageSize>
#include <QMap>

class ..

阅读全文»分类:默认分类|回复:0|浏览:726
2017-11-05 16:53

头文件中定义
QList <QPrinterInfo > list;                //打印机的所有信息
  QList <QStringList> pageSizeInfo;  //保存支持的纸张信息
  QStringList printerList;                   // 保存目前的打印机信息
  QList<QPageSize> userPageSizeList;   // 保存打印机支持的 ..

阅读全文»分类:默认分类|回复:0|浏览:782
2017-11-04 22:50

把目前学到的知识都用上了,输入值后可以自动计算,出结果。
表格可打印,打印预览,存为pdf文件,可自定义页面,页脚。默认模式A4。
修改代码后,可实现纸张设定,页面范围设定。
慢慢来吧。

阅读全文»分类:默认分类|回复:0|浏览:630
2017-11-04 09:03

QT自带了QPrintPreviewDialog QPrintPreviewWidget QPageSetupDialog 等,里面对纸张大小、方向、页边距都有设定,下一步就看看这几个类的实现方式了。

阅读全文»分类:默认分类|回复:0|浏览:754
2017-11-04 08:59

QPrinter printer(QPrinter::HighResolution);
QPrintDialog dialog(&printer,QApplication::activeWindow());
if (dialog.exec()==QDialog::Accepted){
QPainter p(&printer);
foreach(pageScene, pageSceneVector){
pageScene->render(&p, printer.paperRect(), sceneRect);
if(pageScene != pageSceneVector.last())
printer.newPage();
}
}

预览功能
主函数里添加

QPrinter printer(QPrinter::HighResolution);
//自定义纸张大小
printer.setPageSize(QPrinter::A4);

QPrintPreviewDialog preview(&a ..

阅读全文»分类:默认分类|回复:0|浏览:762
2017-10-31 19:42

class QTEGraphicsPixmapItem : public QGraphicsPixmapItem
{
public:
    explicit QTEGraphicsPixmapItem(QTEGraphicsItem *parent = 0);
public:
    void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget);
    QRectF boundingRect() const ;
    void setQTEpixmap(QPixmap pixmap);
    QPixmap qtpixmap;
};
void QTEGraphicsPixmapItem::paint(QPainter *painter, const QStyleOptio ..

阅读全文»分类:默认分类|回复:1|浏览:721
12

Powered by phpwind v8.7 Certificate Copyright Time now is:03-29 01:28
©2005-2016 QTCN开发网 版权所有 Gzip disabled