当前位置: 首页 > news >正文

创意产品网站山东省城乡与住房建设厅网站

创意产品网站,山东省城乡与住房建设厅网站,做网站站长,湛江电子商务网站建设继续记录一些Qt开发中的技巧操作: 1.滚动部件的滑动问题 再Linux嵌入式设备上,有时候一个页面的子部件太多,一屏放不下是需要做页面滑动,可以使用“QScrollArea”控件,拖来一个“QScrollArea”控件,将子部件…

继续记录一些Qt开发中的技巧操作:
1.滚动部件的滑动问题
再Linux嵌入式设备上,有时候一个页面的子部件太多,一屏放不下是需要做页面滑动,可以使用“QScrollArea”控件,拖来一个“QScrollArea”控件,将子部件放置在“QScrollArea”自带的“scrollAreaWidgetContents”中。这样就可以拖动了么,实际不行,还需要专门设置滑动:

    //设置滑动ui->scrollArea->verticalScrollBar()->style()->polish(ui->scrollArea->verticalScrollBar());QScroller::ScrollerGestureType gesture = QScroller::LeftMouseButtonGesture;QScroller::scroller(ui->scrollArea)->grabGesture(ui->scrollArea, gesture);ui->scrollArea->verticalScrollBar()->setValue(0);

或者这样写:

    QScroller *scroller = QScroller::scroller(ui->scrollAreaUpper->viewport());scroller->grabGesture(ui->scrollAreaUpper->viewport(), QScroller::LeftMouseButtonGesture);

这样就可以随着手指滑动了。
但有时候会遇到划不动的情况,仔细看父窗口有QScrollArea部件,这个父窗口会弹出个子窗口,子窗口里边也有QScrollArea部件,你就会发现父窗口可以滑动,但子窗口不能滑动。这是由于两个QScrollArea部件都设置了“QScroller::LeftMouseButtonGesture”,你只需将其中一个改为“QScroller::TouchGesture”类型就互不影响了。
2.Qt设置时区问题
在一些跨国项目中,经常会碰到时区问题。设备上显示“14:00:00”,时间传到后台,后台显示“18:00:00”,这是由于设备和后台使用不同的时区对时间戳进行转换造成的。Qt中,有专门处理时间和时区的函数。

// 获取当前时间QTime time = QTime::currentTime(); //判断是否有效的时间bool valid = time.isValid(); // 返回false// 增加1小时time = time.addSecs(3600);  // 增加1秒time = time.addMSecs(1000);  QTime startTime(12, 0, 0);  // 12:00:00// 计算两个时间之间的秒数差值int diff = startTime.secsTo(time);  //检测时间段QTime timer;timer.start();// 第一段代码,restart开始int elapsed1 = timer.restart();// 第二段代码,elapsed结束int elapsed2 = timer.elapsed();//获取当前日期时间QDateTime datetime = QDateTime::currentDateTime();//时间转字符串QString strReportTime = datetime.toString("yyyy/MM/dd hh:mm:ss");QDateTime datetime2;//字符串转时间datetime2.fromString(strReportTime , "yyyy/MM/dd hh:mm:ss");//设置时区datetime.setTimeZone(QTimeZone("Asia/Shanghai"));QString timeString = datetime.toString(Qt::ISODate);//更新时区信息QTimeZonePrivate::instance()->updateZoneInfo(QDir("/usr/share/zoneinfo"));//获取以0时区为基准的日期时间QDateTime utcTime = QDateTime::currentDateTimeUtc();QDateTime localTime = utcTime.toLocalTime();logger()->info() << __FUNCTION__  << "UTC time: " << utcTime.toString(Qt::ISODate);logger()->info() << __FUNCTION__ << "Local time: " << localTime.toString(Qt::ISODate);

3.自定义窗体样式不生效问题
我们在开发过程中,经常需要自定义一些继承自QWidget的窗体,作为其他窗体的组件胡总和子窗体,这时候,你会发现在设计器中,设置的自定义窗体自身的样式,无法生效,设置的背景,颜色什么的,都没有表现出来,这是由于继承自QWidget的自定义窗体的样式不能再使用设计器里边的样式设置,而需要以读文件的形式来设置窗体样式。如下:

    //自定义的窗体可以设置内部子部件样式,但没法直接设置自身样式,必须要通过读文件的形式this->setAttribute(Qt::WA_StyledBackground);QFile qss(":/qss/qssStyle/FormStyle.qss");if (qss.open(QFile::ReadOnly)){QString style = QLatin1String(qss.readAll());this->setStyleSheet(style);qss.close();}

当然,你也可以让自定义窗体改为继承自QFrame,因为QFrame自带paintEvent函数已做了实现,在使用样式表时会进行解析和绘制。
4.编码格式问题
有时候我们代码中包含中文时,会经常遇到下面这些报错,其实有指向性的就是“C2001:常量中有换行符”,你可以网上去查找,这是由于编码格式引起的,程序中有对中文编码格式处理,而文件格式不是中文格式。
在这里插入图片描述
解决方案考虑下面几种,可以依次尝试:
(1).“QT界面菜单栏->工具->选项->文本编辑器,修改成如果编码是UTF-8则添加”
在这里插入图片描述
(2)“QT界面菜单栏->编辑->Slect Encoding…->UTF-8->按编码保存”,进行修改。
在这里插入图片描述
(3)在头文件加上UTF-8的配置:“#pragma execution_character_set(“utf-8”)”
在这里插入图片描述
(4)在工程文件(.pro)中加上一下配置代码(这种一般是由于MSVC编译,而源代码文件是无BOM的utf-8编码格式)

msvc{QMAKE_CFLAGS += /utf-8QMAKE_CXXFLAGS += /utf-8
}

在这里插入图片描述
5.标签文字对齐无效果
使用QLabel标签时,如果在样式表中直接写文字的对齐方式,“text-align: left center;”不管你是写右对齐还是居中对齐,都会以默认的左对齐显示,毫无效果。这就需要在设计器里直接指定对齐方式,或者使用代码的形式设置对齐方式。

label->setAlignment(Qt::AlignCenter);

或者
在这里插入图片描述
6.给按钮左边加个图
像下面这个,给返回按钮的左边加一个表示返回的图片呢?
在这里插入图片描述
使用样式表是个不错的方式,当然你也可以用其他方式,甚至可以自定义个按钮部件来实现。

QPushButton#btUpdateBack{/*图片*/background-image: url(:/image/Image/back-top.png);background-repeat: no-repeat;background-origin: padding;/*重点:在指定的位置放图片*/background-position: left center;/*重点:内边距推50px刚好放下图片*/padding-left:50px;color: rgba(66, 66, 66, 1);font: bold normal 40px "Source Han Sans CN";background-color: transparent;border-color: transparent;outline: none;text-align: left center;
}

7.最小化后的卡死假象
有时候执行最小化,然后重新恢复时,发现界面可能会出现好像卡死的情况,可以重写showEvent事件,并加上“setAttribute(Qt::WA_Mapped);”以避免。

void showEvent(QShowEvent *e)
{if(event->type() == QEvent::WindowStateChange)  {  if(!isMinimized())  {  setAttribute(Qt::WA_Mapped);  }  }QWidget::showEvent(e);
}
http://www.yayakq.cn/news/243480/

相关文章:

  • 做网站导航能赚钱吗成都网站建设前十
  • 做贸易要看什么网站腾讯企业邮箱格式
  • 流量套餐网站网络营销策划方案格式
  • 山西网站建设哪家好安徽建设工程信息网网
  • 一站式免费建站平台做现货需要关注的网站
  • 广州网站手机建设公司网站站点结构的构建
  • shopex进入网站自动回跳转到别的网站 是否被挂马wordpress 加载慢
  • 余姚网站建设62752762邢台做移动网站价格表
  • 怎么做cc网站室内设计找图片的网站
  • 公司网站设计遵义公司做网站
  • 苏州晶体公司网站网站建设成果
  • 莱阳网站开发域名访问网站啥意思
  • 广东响应式网站建设平台公司网站费用怎么做分录
  • 推广展示类网站有哪些如果在网站做推广连接
  • 网站建设中的html百度视频推广
  • 沈阳做网站最好的公司有哪些建平县营商环境建设局网站
  • 做网站生成二维码工程报价
  • wap网站教程房产信息网的价格和实际价格
  • 常见的电子商务网站有哪些现在最好的免费的建站平台
  • 网页设计与网站建设 石油大学推荐的网站制作
  • 电子网站建设实验报告辽宁省工程新希望官网
  • 网站建设优秀公司哪里有免费建设网站
  • 中企动力双语网站赣州有没有做网站的
  • 校园网站建设方案模板下载广州seo工作
  • 做网站拉广告广州建设档案馆网站
  • 做淘客网站做静态网站有什么建议
  • 手机网站页面范例三维立体图制作软件app
  • 微信导航网站 dedecms怎样建立个人网络平台
  • 怀仁网站建设网站中全景是怎么做的
  • 手机单页网站模板门店管理系统软件排行