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

有自己网站好处关键字优化

有自己网站好处,关键字优化,wordpress 按点击排序,政府网站建设经验继续讲一些Qt开发中的技巧操作: 1.去掉切换按钮 QTabWidget选项卡有个自动生成按钮切换选项卡的机制,有时候不想看到这个烦人的切换按钮,可以设置usesScrollButtons为假,其实QTabWidget的usesScrollButtons属性最终是应用到QTabWi…

继续讲一些Qt开发中的技巧操作:
1.去掉切换按钮
QTabWidget选项卡有个自动生成按钮切换选项卡的机制,有时候不想看到这个烦人的切换按钮,可以设置usesScrollButtons为假,其实QTabWidget的usesScrollButtons属性最终是应用到QTabWidget的QTabBar对象上,所以只要设置全局的QTabBar的这个属性关闭即可。为啥要设置全局的呢,因为如果只是对QTabWidget设置了该属性,而在QMainWindow窗体中QDockWidget合并自动形成的选项卡只有QTabBar对象导致依然是有切换按钮。

//对tabWidget设置无切换按钮
ui->tabWidget->setUsesScrollButtons(false);
//对tabBar设置无切换按钮
ui->tabWidget->tabBar()->setUsesScrollButtons(false);
//对整个系统的选项卡设置无切换按钮
QTabBar{qproperty-usesScrollButtons:false;}
//设置选项卡自动拉伸 这玩意居然之前自动计算来设置原来内置了哇咔咔
QTabBar{qproperty-expanding:false;}
//设置选项卡关闭按钮可见
QTabBar{qproperty-tabsClosable:true;}
//还有其他属性参见QTabBar头文件有惊喜
//依旧是万能大法所有可视化类的 Q_PROPERTY 包含的属性都可以这样设置

2.直接传样式文件
Qt设置样式表支持直接传入样式表文件路径,亲测4.7到5.15任意版本,通过查看对应函数的源码可以看到内部会检查是否是 ‘file:///’ 开头,是的话则自动读取样式表文件进行设置,无需手动读取。

//以前都是下面的方法
QFile qss(":/qss/qssStyle/MainStyle.qss");if (qss.open(QFile::ReadOnly)){QString style = QLatin1String(qss.readAll());this->setStyleSheet(style);qss.close();}else{WriteLocalLog("qss open failed");}
//其实一行代码就行
qApp->setStyleSheet("file:///:/qss/qssStyle/MainStyle.qss");
//特别说明,只支持qApp->setStyleSheet 不支持其他比如widget->setStyleSheet
//像下面这样就不行
ui->widget->setStyleSheet("file:///:/qss/qssStyle/MainStyle.qss");

3.设置字体
在Qt中设置字体这块,我们经常都会经历一个误区,本来是打算设置整个窗体包括子控件的字体大小的,结果发现只有主窗体自己应用了字体而子控件没有,其实是我们需要搞清楚我们设置给了谁。

//假设继承自父类类型QWidget的窗体myWidget作为主窗体,myWidget中有QLabel,QPushButton等子控件,默认字体12px
//下面几种方法只会设置主窗体的字体,子控件不会应用,需要按个调用setFont
QFont font;
font.setPixelSize(20);
this->setFont(font);
this->setStyleSheet("{font:26px;}");
//this设置给了QWidget类型的窗体
this->setStyleSheet("QWidget{font:26px;}");
//this设置给了myWidget的窗体
this->setStyleSheet("myWidget{font:26px;}");//下面才是通过样式表设置整个控件+子控件的字体
this->setStyleSheet("font:26px;");
this->setStyleSheet("*{font:26px;}");
this->setStyleSheet("QWidget>*{font:26px;}");
this->setStyleSheet("myWidget>*{font:26px;}");
//下面设置全局字体,因为qApp是代表整个应用程序的
qApp->setFont(font);

4.QImage超强
Qt中封装的QImage异常的强大,提供了各种图片格式的转换,还可以对每个像素的颜色值进行替换,有时候我们需要将单色的图片换成另外一种颜色,要注意的是如果带有透明值的颜色需要进行格式转化,比如转成Format_ARGB32或者Format_RGBA8888

//pixel 函数获取像素点的颜色 setPixel 函数设置像素点的颜色 此函数任意Qt版本都有
//pixelColor 函数获取像素点的颜色 setPixelColor 函数设置像素点的颜色 此函数Qt5.6以后才有
//pixel函数取出来的是QRgb格式需要用 qRed qGreen qBlue qAlpha 进行转换
QImage image("test.png");
image = image.convertToFormat(QImage::Format_ARGB32);
int width = image.width();
int height = image.height();
//遍历图像的每一个像素
for (int x = 0; x < width; ++x)
{for (int y = 0; y < height; ++y){QString name = image.pixelColor(x, y).name();//将白色以外的颜色全部替换成红色,比如证件照,白底变红底,牛吧if (name = "#ffffff"){image.setPixelColor(x, y, Qt::red);}}
}
//保存文件
image.save("2.png");

QImage 很有很多强大的功能,在“qimage.h”中,很多的接口,多看看,多试试。
5.巧用Qt的全局对象
Qt内置了很多全局的对象参数可以直接获取,这样在使用的时候方便的不要不要的,比如判断当前鼠标左键还是右键可以直接用qApp->mouseButtons(),全局的鼠标坐标可以用QCursor::pos(),还有我们常见的颜色色值等。

//在鼠标右键的地方弹出菜单,如果菜单是QMenu而不是QAction则只能通过下面的方式弹出
if (qApp->mouseButtons() == Qt::RightButton) 
{videoMenu->exec(QCursor::pos());
}
//全局剪切板
qApp->clipboard();
//顶层控件对象集合
qApp->topLevelWidgets()
//当前焦点所在控件
qApp->focusWidget()
//当前平台名称
qApp->platformName()
//调用系统蜂鸣器
qApp->beep()
//打印当前Qt版本信息
qApp->aboutQt()
//设置全局的鼠标样式
qApp->setOverrideCursor()
//不使用系统的标准颜色字体等
QGuiApplication::setDesktopSettingsAware(bool on);
QApplication app(argc, argv);
//更多的全局对象属性等可以查阅 qguiapplication.h 头文件,你会发现新大陆

更多的全局对象属性等可以查阅 qguiapplication.h 头文件,说不定有你要的惊喜。
在这里插入图片描述
6.信号槽断连
有时候需要暂时停止某个控件发射信号(比如下拉框combobox添加数据的时候会触发当前元素改变信号),或者停止信号槽之间的连接关系,有多种处理,推荐用 blockSignals 方法

//方法1:先 disconnect 掉信号,处理好以后再 connect 信号,缺点很明显,很傻,如果信号很多,每个型号都要这么来一次。
disconnect(ui->cbox, SIGNAL(currentIndexChanged(int)), this, SLOT(on_cbox_currentIndexChanged(int)));
for (int i = 0; i <= 100; i++) 
{
ui->cbox->addItem(QString::number(i));
}
connect(ui->cbox, SIGNAL(currentIndexChanged(int)), this, SLOT(on_cbox_currentIndexChanged(int)));
//方法2:先调用 blockSignals(true) 阻塞信号,处理号以后再调用 blockSignals(false)恢复所有信号。
//如果需要指定某个信号进行断开那就只能用 disconnect 来处理。
ui->cbox->blockSignals(true);
for (int i = 0; i <= 100; i++) 
{
ui->cbox->addItem(QString::number(i));
}
ui->cbox->blockSignals(false);

7.低量数据就用sqlite
Qt在数据库相关的应用中,如果仅仅是单机版本,没有特别的需要,建议就使用sqlite数据库,尤其是一些单机版的,嵌入式的,千万级别以内的数据量,只要客户不指定,就用sqlite。Qt内置了sqlite数据库,只需要发布的时候带上插件就行,其他数据库要么还要带上动态库,要么还需要创建数据源;毕竟是内置的,在速度上,绝对无与伦比的出类拔萃;几千万的数据量完全没问题,而且速度和性能都还可以,所以数据量建议千万级别以下,着重注意数据库表和索引的设计;sqlite数据库也有几个重大缺点:不支持加密,不支持网络访问,不支持部分数据库高级特性,不支持海量数据(亿级别以上),但是对于绝大部分Qt项目还是足够;记住:Qt中数据库支持友好度大致是 sqlite > postgresql > mysql > odbc。

http://www.hkea.cn/news/108881/

相关文章:

  • 武威建设网站的网站google谷歌搜索
  • 长沙公司做网站多少钱推广平台怎么做
  • 现在大家做电商网站用什么源码营销策略都有哪些
  • 可以做试卷的网站英语怎么说seo关键词排名优化系统源码
  • 网站怎么设置支付功能企业网站的主要类型有
  • 成都圣都装饰装修公司北京搜索优化排名公司
  • 境外建设网站贴吧互联网域名注册查询
  • 广州建站工作室淘客推广怎么做
  • 中国最大的网站建设公司百度广告联盟点击一次多少钱
  • wordpress单页主题营销seo手机关键词网址
  • dedecms做电影网站韩国最新新闻
  • 哪个网站做废旧好如何在百度上发布自己的广告
  • 网站表单及商品列表详情模板如何搭建自己的网站
  • 网站域名登记证明百度高级搜索怎么用
  • 国外网站在国内做镜像站点网站搭建费用
  • 网站后台如何添加关键词软件开发公司
  • 手机做网站的网站windows优化大师卸载不了
  • 万网速成网站有哪些 功能自己的网站怎么推广
  • 邯郸哪有做网站的河南百度推广公司
  • 我是做环保类产品注册哪些浏览量大的网站推销自己的产品比较好呢西安网站seo优化公司
  • 网页传奇游戏排行昆明网络推广优化
  • 商城模板网站模板网站软文是什么
  • 校园网站推广方案怎么做网站排名推广工具
  • 深圳罗湖企业网站建设报价网络媒体发稿平台
  • 用别人公司域名做网站线下推广的渠道和方法
  • php mysql的网站开发外贸推广平台
  • 济南网站建设认可搜点网络能百度指数有三个功能模块
  • 网上商城网站建设意义在线代理浏览网页
  • 网站图片切换代码百度下载并安装最新版
  • 微信公众平台号申请注册入口杭州seo公司