QT tablModel/View编程中,QTABLEVIEW的视图大小问题
MODEL继承自QAbstractTableModel,
VIEW使用的QTABLEVIEW。
就列的显示大小和弹簧问题,做了很多尝试。
现在基本可以达到满意效果。
tableView = new QTableView;
tableView->horizontalHeader()->setStretchLastSection(true);
tableView->horizontalHeader()->setResizeMode(QHeaderView::ResizeToContents);
tableView->horizontalHeader()->setResizeMode(4, QHeaderView::Stretch);
tableView->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
tableView->setModel(model);
乱七八糟的入门知识
extern std::string onestr("exercise 3.5a");
定义并初始化string类变量onestr,且初始化,因用了extern,只能出现在函数外部
除非特别声明,在全局作用域声明的const变量是定义该对象的文件的局部变量,不能被其他文件访问。可通过指定extern const使其他文件可以访问。
引用必须用同类型的对象初始化,且初始化后不能将该引用指向其他对象。
但const 引用则可以绑定到不同但相关的类型的对象或者右值。
int ival = 100;
int &iival = ival; //ok
int &errorss; //error
int &temp = 100; //error,must be an object, 但const int &temp = 100没有问题
const int ival = 234;
int &refval = ival //error,nonconst reference to a const object
string对象和字符串字面值连接时,+操作符的左右两侧至少要有一个是string对象
使用const_iterator类型时,得到一个迭代器,它所指向的元素的值不可以改变,但可以改变迭代器自身的值。
不要把它与 const vector<T>:iterator xxx弄混。
两个迭代器相加的操作是未定义的
赋值表达式的值是其左操作数的值,其结果的类型是左操作数的类型。
习题5.19
假设ie 为vector<string>::iterator 类型的变量,指出下列表达式那些是合法的,并解释这些合法表达式的行为。
a,*iter++
b,(*iter)++
c,*iter.empty()
d,iter->empty()
e,++*iter
f,iter++->empty
【解答】
a、d、f合法。
int x[10];
int *p = x;
cout << sizeof(x) / sizeof(*x) << endl;
cout << sizeof(p) / sizeof(*p) << endl;
非CONST引用行参,只能与完全同类型的非const对象相联。
默认实参只能用来提供函数调用缺少的尾部实参。例如 xxxx函数有三个默认实参,则 xxxx(, , 'y')非法