qt布局管理-缩放、多窗口切换

  1. 关于缩放的布局
  • 所有控件要求与主窗口同时缩放,那么在所有控件设置好布局后,最后点击最外侧的主控件,选择水平布局或者垂直布局即可。
  • 另外每个空间的属性可更改,如SizePolicy用于设置空间是否可缩放等(如希望缩放,则选择expanding)。
  1. 同一主窗口下的多窗口切换
  • 可以利用QStackedLayout类进行堆叠放置,然后利用stackLayout->setCurrentIndex(n)来控制显示的页面。因为该类设置仅显示一张画面,满足需求。在新增好布局后再在主窗口下重新设置QVBoxLayout网状布局,一定要再定义一个QWidget,然后在其基础上添加已设置好的布局Layout,最后再widget->setLayout(Layout);
  1. 关于单击QTreeWidget不同子项如何进行响应的参考回答,如下代码:
 //这是方法一:
//适用于子节点较少时
bool eventFilter(QObject * pObject, QEvent * pEvent)
{
if(QEvent::MouseButtonPress == pEvent.type() /* 判断是不是按键事件 */)
{
QMouseEvent *pMouseEvent = static_cast<QMouseEvent*>(pEvent);
if(Qt::RightButton == pMouseEvent->button() /* 判断是不是右键按下 */)
{
if(pObject == ** /* 判断 pObject是否等于某个treeWidgetItem*/)
{
/* 显示不同的菜单 */
}
} }
} //方法二:
//就是继承,重载按键事件
//适用于子节点较多,以及子节点右键菜单多而不同情况

另一种回答:

利用子节点是否有父节点来判断,点击节点是否响应槽函数。如:

QTreeWidgetItem *parent = item->parent();//获得父节点
if(NULL==parent)
return;

QList是一个最常用的容器类,用它定义一个对象通常是

QList <int>list;
其中int代表给定的类型,也就是说现在定义了一个有符号整形的容器,让后给里面装值
list<<2<<3<<4<<6;
现在就可以使用foreach(int i,list)这样就可以遍历整个容器了.分别将容器中的值放到循环遍历放到变量中。
    QList <int>list;
list <<2<<4<<1<<6;
foreach(int str,list)
qDebug()<<str<<endl;

Qt提供的一种格式化字符串输出的函数arg():
1. str=QString(“%1 %2 (%3s-%4s)”)
2. arg(“permissive”).arg(“society”).arg(1950).arg(1970);
这段代码中,%1, %2, %3,
%4作为占位符,将被后面的arg()函数中的内容依次替换,比如%1将被替换成permissive,%2将被替换成society,%3将被替换成1950,%4将被替换曾1970,最后,这句代码输出为:permissive
society (1950s-1970s).
arg()函数比起sprintf()来是类型安全的,同时它也接受多种的数据类型作为参数,都会被转化为QString类型然后进行替换。

待更新...

上一篇:请确保 ASP.NET State Service (ASP.NET 状态服务)已启动 问题解决


下一篇:转:无法向会话状态服务器发出会话状态请求请。确保 ASP.NET State Service (ASP.NET 状态服务)已启动