qt写c++程序,Qt中的C++技术
我会不定期的把我发现的一些小技巧都总结下来,这样自己就算忘记了,翻翻博客也能找回来,也是极好的。
一C . 1 .变量的修饰自动:属于一次性存储,其存储空间可被若干变量重复覆盖使用注册:存放在通用寄存器中外部:在所有函数和程序段中都可以引用静态:在内存中时以固定地址存放的,在整个程序运行期间都有效2.显示转换操作符static _ casedynameic _ cast const _ castreinterpret _ cast 3。弯曲件的默认值真=1假=04。进制输出//进制输出
int a=1000
cout 十进制:“dec a endl
cout 八进制:“oct a endl
cout 十六进制: hex a endl5。九九乘法表//九九乘法表
for(int I=1;我我)
{
for(int j=1;j j)
{
cout i * j = i * j
}
cout结束
}6.预处理命令#定义
#错误
#如果
#否则
#elif
#endif
#ifdef
#ifndef
#undef
#线
#实用程序7 .数组长度C并没有直接提供数组的长度方法,我们可以这样计算
int main()
{
int arr[]={ 1,5,9,10,9,2 };
//方法一
cout 数组的长度:(end(arr)-begin(arr))endl;
//方法二
cout 数组的长度:(sizeof(arr)/sizeof(arr[0]))endl;
系统("暂停");
返回0;
}二。QT1。第一行.输入密码this-ui-line edit-setEchoMode(qline edit:Password);2.智能提示//可以设置匹配模式
QStringList列表;
列表"1 12 123 1234 12345";
q完成者*完成者=新q完成者(列表,这个);
this- ui- lineEdit- setCompleter(完成者);
2.控件移动//动态移动
setGeometry(30,30,3,0)3 .启动程序q进程*我的进程=新q进程();
//获取到输入框输入的内容启动,类似煤矿管理局
我的进程-start(this-ui-cmd _ line-text().trimmed());4.笔记本最近做记事本积累下来的小技巧
1.打开文件void主窗口:on _ action _ O _ trigged()
{
//打开窗口获取到文件绝对路径
QString文件路径=QFileDialog:获取打开的文件名(this,’打开文件,QDir:当前路径());
如果(!filePath.isEmpty())
{
//裁剪路径
QStringList list=文件路径。拆分(/);
//设置标题
this-setWindowTitle(list[list。length()-1]);
QFile * file=新的QFile
文件设置文件名(文件路径);
bool iso pen=file-open(QIODevice:ReadOnly);
if(isOpen)
{
(文件)中的QTextStream
QString text=in。read all();
this- ui- textEdit- setText(文本);
file-close();
删除文件;
}
}
}这段代码类似记事本的【打开】功能
2.字体//字体
void主窗口:on _ menu _ font _ trigged()
{
//获取选中的字体
布尔ok
QFont font=QFontDialog:getFont(好的,这个);
如果(好)
{
this- ui- textEdit- setFont(字体);
}
}3.颜色//设置字体颜色
void主窗口:on _ menu _ color _ trigged()
{
QColor color=QColorDialog:getColor(Qt:black,this);
if(color.isValid())
{
this- ui- textEdit- setTextColor(颜色);
}
}4.时间//时间
void主窗口:on _ menu _ time _ trigged()
{
QDateTime数据时间=QDateTime:当前日期时间();
QString时间=数据时间。tostring( yyyy-MM-DD HH:MM:ss );
this- ui-文本编辑-追加(时间);
}5.打开网站//打开网页
QDesktopServices:openUrl(QUrl( https://www。百度一下。com/);6.Gif//播放可交换的图像格式
q电影*电影=新q电影(/img/xx。gif’);
this- ui- label- setMovie(电影);
电影-开始();
//电影停止().7.启动页int main(int argc,char *argv[])
{
QApplication app(argc,argv);
像素映射像素映射(:/splash。png’);
QSplashScreen splash(pixmap);
飞溅。show();
app。流程事件();
.
主窗口窗口;
window.show().
飞溅.完成(窗口);
返回app。exec();
}8.播放声音q音铃(‘我的音/铃。wav’);
钟声。play();
//对应的暂停停止9 .读取文件属性void MainWindow:openFile()
{
QString fileName=QFileDialog:get open fileName(this,’选择文件,QDir:home path());
如果(!fileName.isEmpty())
{
this-ui-text浏览器-clear();
qDebug()文件名;
//标题
this-setWindowTitle(文件名。split(/)[文件名。拆分(/).size()-1]);
QFileInfo info(文件名);
//文件大小
int size=info。size()/1024/1024;
this- ui- textBrowser- append(文件大小: QString:number(size)" MB ");
//创建时间
QString time=info.created().toString( yyyy-MM-DD HH:MM:ss );
this- ui- textBrowser- append(创建时间:时间);
//最后访问时间
QString lastTime=info.lastRead().toString( yyyy-MM-DD HH:MM:ss );
}
其他
{
" qDebug()"错误:获取文件失败;
}
}10.列表小部件//插入
void主窗口:on _ BTN _ add _ clicked()
{
QListWidgetItem * item=new QListWidgetItem;
item- setText(你好);
this-ui-list widget-addItem(item);
}
//删除
void主窗口:on _ BTN _ del _ clicked()
{
//条目总数
//this-ui-list widget-count();
//选中条目
int row=this-ui-list小部件-当前行();
this-ui-list widget-take item(row);
}11.自定义应用图标你可以在帮助中搜索-设置应用程序图标就可以找到办法了
1.图片为图标资源文件后缀2.拷贝到根目录3.新建一文件xx.rc4 .内容为IDI _图标1图标可丢弃xx.icon5.pro中修改RC_FILE=xx.rc12 .文本编码#包含"主窗口. h "
#包括q应用
#包含问题
#包含图片
int main(int argc,char *argv[])
{
QApplication a(argc,argv);
//设置编码
QTextCodec:setCodecForLocale(QTextCodec:codecForLocale());
QLabel*label=新q标签;
label-setText(QObject:tr( Hello World!));
标签-显示();
返回a . exec();
}13.提示框void主窗口:on _ list widget _ item clicked(QListWidgetItem * item)
{
if(item- text()==tr(颜色对话框)){
QColor color=QColorDialog:getColor(Qt:red,this,tr(选择颜色));
item- setTextColor(颜色);
}else if(item- text()==tr(字体对话框)){
布尔ok
QFont font=QFontDialog:getFont(好的,这个);
如果(正常){
item- setFont(字体);
}
}else if(item- text()==tr(问题对话框)){
QMessageBox:question(this,tr(对话框),tr(这是问题对话框),QMessageBox:Ok,QMessageBox:No);
}else if(item- text()==tr(提示对话框)){
QMessageBox:information(this,tr(对话框),tr(这是提示对话框),QMessageBox:Ok);
}else if(item- text()==tr(警告对话框)){
QMessageBox:warning(this,tr(对话框),tr(这是警告对话框),QMessageBox:Abort);
}else if(item- text()==tr(错误对话框)){
QMessageBox:critical(this,tr(对话框),tr(这是错误对话框),QMessageBox:yes all);
}else if(item- text()==tr(关于对话框)){
QMessageBox:about(this,tr(对话框),tr(这是关于对话框));
}else if(item- text()==tr(文件对话框)){
QString path=QFileDialog:get open filename(this,tr(选择文件),QDir:currentPath(),tr(图片文件(* png * jpg)));
项目设置文本(路径);
}else if(item- text()==tr(输入对话框)){
布尔ok
QInputDialog:getText(this,tr(输入内容),tr(请输入用户名),QLineEdit:Normal,tr(admin ),ok);
}else if(item- text()==tr(进度对话框)){
QProgressDialog对话框(tr(’文件复制进度),tr(取消),0.5万,这个);
对话。show();
for(int I=0;i 500000000000i) {
对话。setvalue(I);
//避免界面冻结
qcore application:process events();
if(dialog.wasCanceled()){
打破;
}
}
对话。setvalue(50000000000);
}else if(item- text()==tr(向导对话框)){
QWizardPage * page 1=new QWizardPage;
第一页-设置标题(页面1);
QWizardPage * page 2=new QWizardPage;
第2页-设置标题(页面2);
QWizardPage * page 3=new QWizardPage;
第3页-设置标题(页面3);
q向导向导;
巫师。添加页面(第1页);
巫师。添加页面(第2页);
wizard.addPage(第3页);
向导。exec();
}else if(item- text()==tr(错误信息对话框)){
QErrorMessage * message=new QErrorMessage;
message- setWindowTitle(错误信息对话框);
message- showMessage(这是错误);
}
}14.输入限制//输入限制0-100以内
q validator * validator=new QIntValidator(0,100,this);
this- ui- lineEdit- setValidator(验证器);剩下的我会不定期的更新
一起交流可以加群:690351511
原创作品来自的程序员博主刘某人,
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。