Qt5:无边框窗口拖动
摘要:在窗口程序中,无边框窗口程序一般需要特殊处理才能拖动Qt中,要实现无边框窗口的拖动,需要重新实现 mousePressEvent 和 mouseMoveEvent 俩虚函数 1 void Widget::mousePressEvent(QMouseEvent *event) 2 { 3 if (event->button() == Qt::LeftButton) { 4 pos = event->globalPos() - frameGeometry().topLeft(); 5 event->accept(); 6 } 7 } 8 9 voi...
阅读全文
posted @
2013-06-30 01:56
wowk
阅读(1455)
推荐(0)
Qt5:Qt文件操作类 QFile
摘要:在QT中,操作文件一般不使用C++提供的文件操作类 , 因为操作文件的时候,要用到C++提供的 string 类,而在QT中使用的是Qt自己实现的一个string类QString 。在Qt中使用C++的string类的时候,很多时候都要在 QString 和 string 之间进行转换,这样是很不方便的,所以在Qt程序中,一般推荐操作文件的方法是使用Qt自己实现的文件操作类 QFile 。现在暂且先看看QFile读写文件时用到的基本函数,其他的关于创建link和设置权限等函数先撇一边QFile的基本构造函数: QFile(const QString & name) QFile(QObj
阅读全文
posted @
2013-06-29 13:59
wowk
阅读(1625)
推荐(0)
Qt5:QSystemTrayIcon类实现程序托盘图标
摘要:windows下,在许多应用程序中都会实现一个托盘图标,用于隐藏应用程序窗口时还能对该应用程序进行简单的操作,例如 QQ ,renren等程序那么,在Qt中,如何实现呢? 这就要用到Qt提供的QSystemTrayIcon 这个类了。来看看这个类中都有哪些常用的成员函数首先是这个类的构造函数 QSystemTrayIcon(QObject * parent = 0) QSystemTrayIcon(const QIcon & icon, QObject * parent = 0)可以看出,使用这个类需要一个托盘图标 , 和托盘图标标识的窗口对象的指针再来是一个设置右键菜单的函数 voi
阅读全文
posted @
2013-06-29 13:39
wowk
阅读(1686)
推荐(0)
软件不同版本标识
摘要:版本名称介绍说明alpha内测版内部测试版本beta公测版Beta阶段会一直加入新的功能RC候选版几乎就不会加入新的功能了,而主要着重于除错Release正式版稳定版本/***********************转自百度百科**********************/
阅读全文
posted @
2013-06-27 12:57
wowk
阅读(276)
推荐(0)
电子书籍大全
摘要:http://pan.baidu.com/share/link?shareid=369083&uk=1375777560#dir奔跑吧 骚年~~
阅读全文
posted @
2013-06-26 19:02
wowk
阅读(186)
推荐(0)
'xcopy' 'ipconfig'。。。 不是内部或外部命令,也不是可运行的程序 或批处理文件
摘要:最近在win8下安装软件的时候,总是报 "xxx不是内部或外部命令,也不是可运行的程序 或批处理文件" 的错误 。 百思不得其解 打开cmd 或 powerShell 输入xcopy 、ipconfig 命令都无法使用 , 最后百度得到的答案是 在系统 path 环境变量中添加下列环境变量 c:\windows\system32 和 c:\windows\syswow64 (64位系统),保存 然后重试这两个命令 , 发现可以使用来了
阅读全文
posted @
2013-06-20 17:57
wowk
阅读(2760)
推荐(0)
[转]Qt5.0 连接 webkit 错误解决
摘要:新版的qt5.0把webkit拆分为webkit和webkitwidgets两个部分,所以如果遇到错误:Undefined symbols for architecture x86_64:“QWebView::setUrl(QUrl const&)”, referenced from:Ui_MainWindow::setupUi(QMainWindow*) in mainwindow.o“QWebView::QWebView(QWidget*)”, referenced from:Ui_MainWindow::setupUi(QMainWindow*) in mainwindow.o需
阅读全文
posted @
2013-06-19 14:20
wowk
阅读(867)
推荐(0)
win8 explorer 进程频繁奔溃的原因及处理
摘要:最近 , win8 系统中的 explorer 进程总是频繁奔溃 , 想想可能是最近新装或更新了什么软件引起的 。 查看了记录奔溃的详细信息 , 果不其然 ,是最近更新的快播新版本的 64位浏览器插件引起的 ,网上有人说卸掉快播重装 ,但是这样好像太麻烦了 。我的办法是: 打开IE浏览器选项设置, 禁用掉64位的插件, 但是保持32位的插件 处于启用状态 就OK了 , 这样不用重新安装快播
阅读全文
posted @
2013-06-18 01:38
wowk
阅读(330)
推荐(0)
每个程序员都应该学习使用Python或Ruby
摘要:如果你是个学生,你应该会C,C++和Java。还会一些VB,或C#/.NET。多少你还可能开发过一些Web网页,你知道一些HTML,CSS和JavaScript知识。总体上说,我们很难发现会有学生显露出掌握超出这几种语言范围外的语言的才能。这真让人遗憾,因为还有很多种编程语言,它们能让你成为一个更好的程序员。在这篇文章里,我将会告诉你,为什么你一定要学习Python或Ruby语言。跟C/C++/Java相比 — Python/Ruby能让你用少的多的多的代码写出相同的程序。有人计算过,Python或Ruby写出的程序的代码行数只相当于相对应的Java代码的行数的五分之一。如果没有绝对的必要,为
阅读全文
posted @
2013-06-15 19:35
wowk
阅读(207)
推荐(0)
最常被程序员们谎称读过的计算机书籍
摘要:马克·吐温曾经说过,所谓经典小说,就是指很多人希望读过,但很少人真正花时间去读的小说。这种说法同样适用于“经典”的计算机书籍。在Stack Overflow(以及其它很多软件论坛)上,诸如”程序员最应该读的计算机书籍有哪些?“这样的问题会周期性的出现。这样的问题不断的被提出、被回答,只是形式不同罢了。相同的几本书总是会出现在清单的前几名内,所以,如果想知道人们谈论的都是些什么,你有必要去读一读这些书的。大多数程序员真正读过的计算机书籍代码大全(Code Complete)——两届Software Jolt Award震撼大奖得主!程序员修炼之道(The Pragmatic Progr
阅读全文
posted @
2013-06-15 19:33
wowk
阅读(124)
推荐(0)
C++:内联函数
摘要:C++中内联函数的定义应该放在头文件中 , 如果放在 源文件中 , 那么链接的时候 有 link error 错误
阅读全文
posted @
2013-06-08 21:37
wowk
阅读(141)
推荐(0)
C++:可变参数函数
摘要:可变参数 函数 的 定义也是从 C 继承过来的对于可变参数函数来说 , 参数最少也要有 1 个 ,该参数作为第一个参数, 对于函数声明中已经列出的参数而言 , 其类型可以为任何类型定义形式为 : type function( argument1 , ... );例如printf 的定义就是 int printf(const char* , ... );实现可变参数的函数的时候 ,要包含的头文件 为 <stdarg.h> 在C++中就是 <cstdarg>主要用到该头文件中的 三个 宏 和 一个类型, 分别是 : va_start() va_arg() va_end()和
阅读全文
posted @
2013-06-08 21:34
wowk
阅读(979)
推荐(0)
C++:使用预处理器进行调试
摘要:通过#ifdef XXXDEBUG#endif在程序中插入打桩调试语句编译的时候 加上 -DXXXDEBUG 宏定义选项就OK了 等效于在 main.cpp 的开头加上 #define XXXDEBUG另外, 还有四种非常有用的调试变量可以使用(1)、__FILE__ 当前执行语句所在的文件名(2)、__LINE__ 当前执行语句所在的行(3)、__TIME__ 当前文件被编译的时间(4)、__DATE__ 当前文件被编译的日期(注意 :前后下划线都是两条 )还可以使用 断言 来进行程序调试所谓的断言 就是 利用一个预处理宏 assert( expression )该宏 声称 ex...
阅读全文
posted @
2013-06-08 19:12
wowk
阅读(323)
推荐(0)
C++:异常处理
摘要:C++ 处理异常的 手段通常有一下几种1、通过 throw 抛出异常 , 抛出的异常 将会向上寻找最近匹配 的 catch() 语句块 来处理异常 ,如果 未找到匹配的 catch , 异常将会自动调用 terminate 来终止程序的执行。 在C++中,所有未处理的异常都会 导致调用 terminate 来使程序终止 throw 可以抛出 C++ 标准库 定义的 标准异常 , 也可以抛出自定义的异常 2、通过 try{} catch(){} 语句块来处理异常 try{} 中通常存放的是 可能会发生异常的代码 , catch(异常类型){} 存放的事针对 某种异常 进行处理的代码 c...
阅读全文
posted @
2013-06-08 18:15
wowk
阅读(324)
推荐(0)
C++:mutable关键字
摘要:mutable 关键字 虽然很少看到 , 但其功能也是比较重要的 , 用mutable关键字修饰的变量 在程序的任何位置 都处于可变状态。就算是在 const 函数中 其值也能被改变例: 1 class Test 2 { 3 public: 4 Test(){a = 0;} 5 public: 6 mutable int a; 7 void func () const{ 8 a = 1000; 9 }10 };11 int main(int argc, char* argv[])12 {13...
阅读全文
posted @
2013-06-08 16:44
wowk
阅读(186)
推荐(0)
C++:强制转换
摘要:C++中 , 除了可以使用C风格的强制转换外 , 还另外定义了 四个用于强制转换的关键字dynamic_cast static_cast const_cast reinterpret_cast (注:reinterpret : 重新解释)dynamic_cast 用于运行时识别 指针或 引用指向的对象static_cast类似于C中的强制类型转换 , 可以将较大的 算数类型赋值给较小的算数类型 , 也可以用于 编译器不提供自动转换时 类型的强制转换 (隐式转换就是使用static_cast 实现的)const_cast添加或删除 类型的 const 属性例:1 char a[]...
阅读全文
posted @
2013-06-08 16:35
wowk
阅读(222)
推荐(0)
C++:从C继承的标准库
摘要:C++从C继承了的标准库 , 这就意味着 C 中 可以使用的标准库函数 在C++ 中都可以使用 , 但是需要注意的是 , 这些标准库函数在C++中不再以<xxx.h> 命名 , 而是变成了 <cxxx> 。 例如: 在C中操作字符串的库函数所在的头文件 <string.h> 在C++中要写成 <cstring>(注:虽然 在C++ 中 包含 〈xxx.h〉也没有任何问题, 毕竟C++是兼容C的 , 但是 这样会引起混淆, 让人不知道 某一函数到底是属于C还是C++的 )
阅读全文
posted @
2013-06-08 15:09
wowk
阅读(210)
推荐(0)
C++:指针
摘要:C++中 , 指针相减所得结果的类型为 ptrdiff_t , 他 与 size_t 类型一样,都是与机器相关的类型,所不同的是 size_t是 unsigned ,而 ptrdiff_t是 signed几种指针类型 1 、 const char * p;常量指针顾名思义 : 指向常量的指针 , 也就是说, 不能通过该指针修改其指向的数据的值 2 、 char * const p; 指针常量顾名思义 : 就是指针类型 的 常变量 , 也就是说 , 定义的变量 p 的值不能改变 3 、 const char * const p; 常量指针常量 顾名思义:就是 指向 常量的 指针类型的 ...
阅读全文
posted @
2013-06-08 15:01
wowk
阅读(224)
推荐(0)
C++ : string 的注意事项
摘要:C++的 striing 类中 , size()成员函数的返回类型为 string::size_type , 为了程序的可移植性 , 避免用其他类型来代替该类型1 string str("hahahahha");2 string::size_type len = str.size();3 cout<<len<<endl;
阅读全文
posted @
2013-06-08 14:50
wowk
阅读(241)
推荐(0)
Qt5:创建右键弹出菜单
摘要:右键弹出菜单 的功能 也通常 是和 菜单栏中的某个子菜单项 的功能重叠的所以action也相同,基于此 我们来创建右键弹出菜单先在 MainWindow 类中 添加 void createContextMenu(); 和 QMenu * contextMenu 指针然后在MainWindow的构造函数中调用 createContextMenu() 函数1 void MainWindow::createContextMenu()2 {3 this->addAction(menu->cutAction);4 this->addAction(menu->copyAction)
阅读全文
posted @
2013-06-04 21:58
wowk
阅读(523)
推荐(0)
Qt5:为窗口添加状态栏
摘要:添加了菜单栏和工具栏,现在我们来为窗口添加状态栏1 void MainWindow::createStatusBar()2 {3 statusbar = statusBar();4 }在MainWindow类中添加一个 createStatusBar() 成员函数 和一个 QStatusBar* 类型的指针 statusbar 当第一次调用 statusBar() 函数的时候 , QT 会自动为窗口创建一个状态栏 ,并返回指向该状态栏的指针也可以通过 实例化一个 QStatusBar 类 的一个对象 , 并设置父对象,以此来创建状态栏 (菜单栏,工具栏的创建都可以用这种方法)
阅读全文
posted @
2013-06-04 21:33
wowk
阅读(1294)
推荐(0)
Qt5:为窗口 创建工具栏 toobar
摘要:创建好了菜单栏 , 我们接着来创建一个工具栏通常,工具栏上的按钮的功能都是等同于菜单栏中的菜单项的功能的,由此我们可以知道,工具栏按钮按下的时候执行的action 和 菜单项的action应该是一样的,那么接下来就可以写代码了1 void MainWindow::createToolBar()2 {3 fileToolBar = this->addToolBar(tr("File"));4 fileToolBar->addAction(menu->newAction);5 fileToolBar->addAction(menu->openAct
阅读全文
posted @
2013-06-04 21:16
wowk
阅读(1209)
推荐(0)
Qt5:为菜单项添加图标 、 快捷键 和 状态栏 提示
摘要:http://www.cnblogs.com/wowk/archive/2013/06/04/3117820.html实现了在窗口上添加菜单 , 现在我们来看看如何添加 图标快捷键 和 提示需要修改的地方只有创建 子菜单项对应的action 的地方 1 MenuBar::MenuBar(QWidget* parent) 2 { 3 fileMenu = new QMenu(QObject::tr("File"),parent); 4 newAction = new QAction(QObject::tr("New"),parent); 5 newActi
阅读全文
posted @
2013-06-04 20:55
wowk
阅读(3593)
推荐(0)
Qt5:在窗口上创建菜单栏
摘要:1 //mainwindow.h 2 #ifndef MAINWINDOW_H 3 #define MAINWINDOW_H 4 5 #include <QMainWindow> 6 class Action;//所用到的类的前置声明 7 class MenuBar; 8 class QMenu; 9 class QWidget;10 11 class MainWindow : public QMainWindow12 {13 Q_OBJECT14 public:15 MainWindow(QWidget* parent = 0);16 pri...
阅读全文
posted @
2013-06-04 20:38
wowk
阅读(4229)
推荐(0)
Qt5:主窗口的创建 子类化QMainWindow
摘要:1 #include "mainwindow.h" 2 #include <QApplication> 3 4 int main(int argc, char *argv[]) 5 { 6 QApplication a(argc, argv); 7 MainWindow w; 8 w.show(); 9 return a.exec();10 } 1 //mainwindow.h 2 #ifndef MAINWINDOW_H 3 #define MAINWINDOW_H 4 5 #include <QMainWindow> 6 7 class Mai.
阅读全文
posted @
2013-06-04 18:04
wowk
阅读(813)
推荐(0)
Qt5:动态对话框
摘要:动态对话框实现也比较容易 , 也是使用 QtDesigner 设计好 用户界面 ,获得 *.ui 文件但是 此时 不是用 setupUi 来 将设计好的用户界面应用到窗口上 而是 使用 QUiLoader 类 通过 *.ui 文件动态创建一个窗口这样 , 就可以在程序运行过程中动态的更换窗口界面了实例代码 1 QApplication a(argc, argv); 2 QUiLoader uiloader; 3 QWidget* dlg = new QWidget; 4 5 QFile file1("mainwindow.ui"); 6 f...
阅读全文
posted @
2013-06-01 21:26
wowk
阅读(1342)
推荐(0)
Qt5:改变形状的对话框
摘要:改变形状的对话框 就是类似于QQ聊天窗口的那种对话框 , 点击就能伸缩侧边栏的那种 。 其实现的 思想 就是 通过 显示或 隐藏 一些 窗口部件 , 然后让程序自动判断窗口的 合适尺寸, 然后将窗口设置为合适尺寸 ,这样就能达到改变 窗口形状的效果了 如下的代码段实现了一个简单的更改窗口形状的 程序 1 #include "sortdialog.h" 2 #include<QLayout> 3 SortDialog::SortDialog(QWidget *parent) 4 :QDialog(parent) 5 { 6 setupUi(this); 7 ...
阅读全文
posted @
2013-06-01 21:00
wowk
阅读(788)
推荐(0)
Qt5:QDialogButtonBox
摘要:QDialogButtonBox类就这种 button 就相当于 MessageBox 函数的 最后一个参数 所指定的 不同 按类型组合 可以时 Yes No 组合按钮 也可以时 OK CANCEL 组合 等等下面这段代码buttonBox->button(QDíalogButtonBox::Ok)->setEnabled(lineEdit->hasAcceptab lelnput ( ).) ; 就是用来根据状况来 决定是否禁用 OK CANCEL 组中 的 OK 按钮的
阅读全文
posted @
2013-06-01 20:41
wowk
阅读(1822)
推荐(0)
Qt5:快速设计对话框 QtDesigner 的使用
摘要:QtDesigner 的使用 比较简单 , 一般摸索几下就可以使用大部分的功能了这里主要介绍其常用的功能1、对用户界面进行可视化的搭建 和 布局2、设置 tab 键的顺序3、设置信号-槽的关系4、自定义槽5、设置窗口部件的各种属性QtDesigner的主要使用方法就是首先 创建一个 QtDesigner 文件, 就是一个 后缀 为 *.ui 的文件这种ui文件是基于xml格式的一种文件点击这个文件,就自动使用 可视化编辑器打开了当用户界面建立完成后 , 保存使用 qmake 编译这个文件 , 就会得到一个 以 ui_*.h 的头文件 ,里面包含用户界面的实现代码打开 *.pro 工程文件 ,.
阅读全文
posted @
2013-06-01 20:01
wowk
阅读(3026)
推荐(0)
Qt5:理解信号和槽
摘要:实现了查找对话框,现在就开始来分析主要代码 http://www.cnblogs.com/wowk/archive/2013/06/01/3112742.html 1 class FindDialog : public QDialog 2 { 3 Q_OBJECT 4 public: 5 explicit FindDialog(QWidget *parent = 0); 6 ~FindDialog(); 7 public slots: 8 void findBtnEnabled(const QString &txt); 9 void find...
阅读全文
posted @
2013-06-01 19:55
wowk
阅读(943)
推荐(0)
Qt5:创建对话框
摘要:以一个查找对话框为例子开始学习 用Qt创建一个对话框程序首先使用手工编码创建一个查找对话框程序 1 #include "finddialog.h" 2 #include<QtGui> 3 4 FindDialog::FindDialog(QWidget *parent) : 5 QDialog(parent) 6 { //查找窗口的部件的创建和初始化 7 text = new QLineEdit; 8 caseSensCheck = new QCheckBox(tr("Match Case")); 9 prevCheck = new QCh.
阅读全文
posted @
2013-06-01 18:49
wowk
阅读(1934)
推荐(0)
Qt5:Qt入门
摘要:Qt是当今很流行的一种跨平台 GUI 框架,但是发展到如今,他的功能已经不局限于开发GUI应用程序 , 他也可以开发许多的非GUI程序和服务器程序等 Qt的入门比较简单,下面以常见的Hello World程序来开始Qt的学习 1 #include <QApplication> 2 #include<QLabel> 3 4 int main(int argc, char *argv[]) 5 { 6 QApplication a(argc, argv); 7 8 QLabel msg("Hello World"); 9 msg.show();1...
阅读全文
posted @
2013-06-01 15:30
wowk
阅读(3837)
推荐(3)
Qt5:<QPageSetupDialog> 找不到 错误
摘要:QPageSetupDialog 类所对应的都文件 在 Qt5 中是位于 QtPrintSupport/ 目录下的 该目录是和打印支持相关的类所在的目录#include<QtPrintSupport/QPageSetupDialog>
阅读全文
posted @
2013-06-01 11:47
wowk
阅读(423)
推荐(0)
Qt5:遇到 tr() 函数 未定义的错误
摘要:遇到 tr 未定义的错误时, 就要查看一下 , 使用tr的地方所在的类是否继承自 QObject 类 或者在不在某一类中,如果不是继承自QObject 或根本不在一个类中 , 那么就直接用类名引用 QObject::tr( )
阅读全文
posted @
2013-06-01 11:32
wowk
阅读(1336)
推荐(1)
Qt5:"Designer: An error has occurred while reading the UI file at line 1, column 0: Premature end of document."错误
摘要:当遇到该错误的时候,要检查几个方面1、*.ui 文件是否执行了打开操作 QFile file("mainwindow.ui"); file.open(QFile::ReadOnly);2、有没有将 *.ui 文件拷贝到debug 和 release 目录下3、有没有在工程文件中加入以下语句 CONFIG += uitools4、另外, 在qt5 中 , QUiLoader 头文件的位置为 <QtUiTools/QUiLoader>
阅读全文
posted @
2013-06-01 11:11
wowk
阅读(4482)
推荐(0)