给Qt应用程序添加图标文件ico setWindowIcon

给Qt应用程序添加图标文件ico setWindowIcon
给Qt应用程序添加图标文件ico setWindowIcon

给Qt应用程序添加图标文件ico setWindowIcon

1:通过qmake生成makefile实现过程:

(1) 找到一张图片.ico,名字改为myappico.ico;注意:Qt5.2中ico文件是256 * 256。

(2) 创建一个新的文本文档,内部添加

IDI_ICON1 ICON DISCARDABLE "myappico.ico"

并将文件重命名为myapp.rc;

(3) 在myapp.pro文件最后加上RC_FILE = myapp.rc,重新生成之后,就修改成功了

2.不用qmake生成makefile实现过程:

前面两步骤一样,最后一步改为,将.rc文件加载至工程中,通过右键工程——添加——已存在文件,添加后右键.rc文件编译,重新生成可执行文件后就修改成功了

1.设置应用程序运行时所有窗口默认图标,

QApplication a(argc, argv); //获得可执行程序路径

QString dir = QApplication::applicationDirPath();

1.//设置可执行程序路径为当前工作路径

2.QDir::setCurrent(dir);

3.

4.QApplication::addLibraryPath("./plugins");

5.

QString dir = QApplication::applicationDirPath();

QApplication::addLibraryPath("./images");

a.setWindowIcon(QIcon("./images/myappico.ico"));

运行时加载ico文件,images目录要于可以执行文件同目录。

netcdf4.1.3安装后环境变量设置以跟Qt下使用静态动态库方法新

netcdf4.1.3安装后环境变量设置以及Qt下使用静态动态库方法一.netcdf4.1.3安装后环境变量设置 1.下载netcdf安装包,from: https://www.360docs.net/doc/4717318811.html,/downloads/netcdf/index.jsp 我下载的是版本4.1.3 2.解压tar -zxvf netcdf-4.1. 3.tar.gz 3. 在解压后的netcdf- 4.1.3所在目录执行: ./configure --disable-dap --disable-netcdf-4 --prefix=/usr/local/netcdf 注意:上面红色的两个选项是他人很多次实验后证明必须的(参考资料1)。--disable-dap的原因是缺少一个‘curl’的lib,--disable-netcdf-4是报错中提出的解决办法,尽管我个人暂时没有搞清楚为什么。不写这两个,在configure的时候就会报错,导致后面make失败。 4. make 5. make install,提示安装成功的同时,还会提醒make check,下一步进行。 6. make check 安装完成后,/usr/local/netcdf/文件夹下存在4个文件,分别为bin,include,lib和share

安装完成后,注意环境变量的设置 打开终端输入sudo ~/.bashrc 在最后添加 export PATH=/home/swh/NSForWoss/DESERT_all_in_one_1.0.0/netcdf/bin:/$P ATH export LD_LIBRARY_PATH=/home/swh/NSForWoss/DESERT_all_in_one_1.0 .0/netcdf/lib:/$ LD_LIBRARY_PATH export DYLD_LIBRARY_PATH=/home/swh/NSForWoss/DESERT_all_in_one _1.0.0/netcdf/lib:/$ DYLD_LIBRARY_PATH

QT习题

QT习题 一、名词解释 1、虚函数: 2、回调函数: 3、内联函数: 4、信号与插槽: 5、私有函数: 6、构造函数: 7、公有函数: 8、内联函数: 9、信号与插槽: 10、析构函数: 二、判断题 1、在QT中Qwidget不可以作为应用程序的窗口()。 2、在创建窗口部件的时候,窗口部件通常不会显示出来()。 3、布局管理器不是一个窗口部件() 4、FindDialog(QWidget *parent = 0);父参数为NULL,说明有父控件。() 5、show()显示的对话框是模式对话框。用exec()显示的对话框是无模式对话框。 () 6、布局管理器派生自QObject。() 7、Q_OBJECT是一个宏定义,如果类里面用到了signal或者slots,就必须要声 明这个宏。() 8、FindDialog(QWidget *parent = 0);父参数为NULL,说明没有父控件。() 9、槽可以是虚函数,可以是公有的,保护的,也可是私有的。() 10、show()显示的对话框是无模式对话框。用exec()显示的对话框是模式对话 框。() 三、简答题 1、简述一下信号与插槽机制。 2、简述布局管理器的功能,列举3个布局管理器。 3、简述使用Qt设计师,在创建对话框时主要包含哪几个基本步骤? 4、GUI程序通常会使用很多图片,请简述3种提供图片的方式。 5、列举几种Qt中会产生绘制事件的情况。 6、Update()与repaint()之间的区别? 7、对窗体上的控件进行布局管理一般有哪几种方式,简述一下其缺点。 8、简述事件和信号的特点和区别。 9、简述主函数中创建QApplication对象功能。 10、简述使用Qt设计师,在创建对话框时总是包含哪几个基本步骤?

Qt 编写多窗口程序

编写多窗口程序 导语 程序要实现的功能是:程序开始出现一个对话框,按下按钮后便能进入主窗口,如果直接关闭这个对话框,便不能进入主窗口,整个程序也将退出。当进入主窗口后,我们按下按钮,会弹出一个对话框,无论如何关闭这个对话框,都会回到主窗口。 程序里我们先建立一个工程,设计主界面,然后再建立一个对话框类,将其加入工程中,然后在程序中调用自己新建的对话框类来实现多窗口。 在这一篇还会涉及到代码里中文字符串显示的问题。 目录 一、添加主窗口 二、代码中的中文显示 三、添加登录对话框 四、使用自定义的对话框类 正文 一、添加主窗口 1.我们打开Qt Creator,新建Qt Gui应用,项目名称设置为“nWindows”,在类信息界面保持基类为QMainWindow,类名为MainWindow,这样将会生成一个主窗口界面。 2.完成项目创建后,打开mainwindow.ui文件进入设计模式,向界面上拖入一个Push Button,然后对其双击并修改显示文本为“按钮”,如下图所示。 3.现在运行程序,发现中文可以正常显示。在设计模式可以对界面进行更改,那么使用代码也可以完成相同的功能,下面就添加代码来更改按钮的显示文本。

二、代码中的中文显示 1.我们点击Qt Creator左侧的“编辑”按钮进入编辑模式,然后双击mainwindow.cpp文件对其进行编辑。在构造函数MainWindow()中添加代码: MainWindow::MainWindow(QWidget*parent): QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); ui->pushButton->setText("新窗口");//将界面上按钮的显示文本更改为“新窗口”} 这里的ui对象就是界面文件对应的类的对象,在mainwindow.h文件中对其进行了定义,我们可以通过它来访问设计模式添加到界面上的部件。前面添加的按钮部件Push Button,在其属性面板上可以看到它的objectName属性的默认值为pushButton,这里就是通过这个属性来获取部件对象的。 我们使用了QPushButton类的setText()函数来设置按钮的显示文本,现在运行程序,效果如下图所示。 2.我们发现,在代码中来设置按钮的中文文本出现了乱码。这个可以有两种方法来解决,一个就是在编写程序时使用英文,当程序完成后使用Qt语言家来翻译整个软件中的显示字符串;还有一种方法就是在代码中设置字符串编码,然后使用函数对要在界面上显示的中文字符串进行编码转换。因为翻译一个软件很麻烦,对于这些小程序,我们希望中文可以立即显示出来,所以下面来讲解第二种方法。 3.设置字符串编码,可以使用QTextCodec类的setCodecForTr()函数,一般的使用方法就是在要进行编码转换之前调用该函数,下面我们在main.cpp文件中添加代码:

Qt显式调用dll

Qt显式调用C++写的dll 这些天在做一个工程,要用到Qt,所以特别研究了一下Qt显式调用链接库的问题。隐式调用就不那么想用了,个人感觉隐式调用既浪费内存,造成程序启动速度极慢,又容易造成链接错误(本人在ogre中深受链接错误之苦),所以只用了显式调用。以前只试过在MFC 中显式调用dll,在Qt上还没试过。其实细细研究一下,相对于MFC的调用来说,Qt的调用也是大同小异的。在这里分享一下。 首先用VS写一个dll先(名字为QtDllTest)。写dll最大的问题就是解决导出函数重命名问题。其中解决方法是多种多样的。本人只用自己最常用一种——用模块定义文件.def。 第一步,写一个dll,简单写一个测试加法函数的: int add(int a,int b) { return a+b; } 之后添加一个模块定义文件QtDllTest.def: LIBRARY "QtDllTest" EXPORTS add 之后顺利生成dll. 现在可以利用dll函数导出工具DLL Export Viewer查看刚才生成的dll中的导出函数:

发现,导出函数名字没有乱码,说明导出函数正常。现在,就以这个dll为例来试着用Qt调用。 新建一个名为QtDllTestDemo的Qt Application: 默认,下一步 继续下一步:

Finish就行了。反正一切默认就行。 在ui界面中加入一个pushButton(ObjectName:CalButton,Text:Calculate),一个Label 控件(Text:Result),一个lineEdit控件(ObjectName:Result),主要是在点击按钮后调用dll并计算把计算结果显示在文本框中,如下图所示: 为了顺利使用dll,我们要在qtdlltestdemo.cpp开始包含这个东西:#include 下面给pushButton添加click响应事件: void QtDllTestDemo::on_CalButton_clicked() {

Excel中进行宏添加为工具栏按钮的操作方法

Excel中进行宏添加为工具栏按钮的操作方法 1、在显示出来的选项卡(文件、开始、公式、数据、审阅……)中,选择一个你希望将宏按钮放置到的地方。比如,在本次演示中,选择选项卡【开始】下的功能区空白处作为宏按钮添加到的位置。 点击选项卡标签,切换到选定的选项卡下,在其功能区右键单击。在弹出菜单中点击“自定义功能区”。 2、然后,在弹出的Excel选项窗口中,在左侧“从下列位置选 择命名”下拉框中选到“宏”,下方列表框将显示出当前所有的宏。 3、在Excel选项窗口的右侧,选到希望添加到选项卡,如此处 为【开始】,选中后,点击下侧的“新建组”按钮,添加新功能组。 4、添加后在新建组上右键单击,点击“重命名”。 在弹出的重命名对话框中,可以为新建组重命名,并指定符号。此处修改新建组的显示名称为:宏按钮。点击确定,则自定义功能 组的名称就修改好了。 5、返回到Excel选项窗口,在左侧列表框中找到希望添加的宏,单击选中,再单击“添加”按钮,宏就被添加到了新建组“宏按钮”中。当然,也可以直接添加到已有的功能组内,如剪贴板、字体、 对齐方式等,这时候,就没有必要新建组了,直接在右侧列表中选 到对应的功能组即可,然后选定宏、添加。 6、在右侧功能区右键已添加的宏,在菜单中点击“重命名”。 在重命名窗口中,选定符号(即按钮图标),并可修改按钮显示名称。点击确定,返回Excel选项窗口。 7、点击Excel选项窗口中的“确定”按钮,返回表格编辑界面。这时候,宏已经为了指定区域处的按钮,如图。

若要对宏进行修改或删除,则按照之前所述,功能区右键>自定 义功能区,在Excel选项窗口中的右侧,对功能或功能组进行修改、删除即可。 效果演示 8、演示的宏代码如下,可以将当前选中单元格复制到离其下方 3行、右侧3列处的单元格。 9、连续两次点击功能区的宏按钮,执行如下:

怎么把qwt添加到qt中使用

标题:如何在QT中运行QWT 作者:胡振凯 日期:2014/8/16 修改ver.1 2014/8/23 运行环境win8.1专业版。 目的:QT中的GUI库不全,使用QWT库可以编程更容易。 从使用QT,到添加QWT库步骤: 1.Download Qt 5.3.1 for Windows 32-bit (MinGW 4.8.2, OpenGL, 735 MB) (Info) , 并安装到D:\Qt中(默认为C盘,但我不喜欢什么都放C里)。 ●下载过VS2013版本,运行nmake时出现错误,找不到stddef.h文 件。 2.修改环境变量的系统变量的path ●打开控制面板,系统,高级设置,环境变量,path ●添加D:\Qt\Qt5.3.1\5.3\mingw482_32\bin,(包含qmake.exe) ●添加D:\Qt\Qt5.3.1\Tools\mingw482_32\bin (包含mingw32- make.exe) 3.Google搜索qwt,进入官网,下载并解压qwt-6.1.0。(下载到哪都无所 谓)。 4.修改qwtconfig.pri文件。修改安装后路径。(我要把qwt安装到d:\Qwt- 6.1.0中,默认是c盘。) ●win32 {QWT_INSTALL_PREFIX = d:/Qwt-$$QWT_VERSION} 5.启动qt命令行程序(类似win dos的那个东东),compile & install qwt文 件。Qwt下载下来的都是源代码,要做成lib和dll文件,就需要编译和安装(拷贝)两个步骤。 ●进入qwt-6.1.0路径,输入命令qmake。在路径下生成makefile文件。 ●输入命令mingw32-make,编译所有cpp文件。 ●输入命令mingw32-make install,按照qwtconfig.pri的文件设置,输 出到安装(拷贝)目录d:/Qwt-6.1.0。 6.设置环境变量的系统变量,添加path,D:\Qwt-6.1.0\lib。很多人把编译好 的文件拷贝到qt库文件夹下。其实,只要设置系统变量的path,编译程序就会查找这个文件夹了,所以不用拷贝来拷贝去的。

Qt Creator 窗体控件自适应窗口大小布局

Qt Creator 窗体控件自适应窗口大小布局 常见的软件窗口大小改变(最大化、手动改变时)需要窗口的部件能够自适应布局,而在Qt的应用程序界面设计中,对于像我一样的初学者如何实现窗口自适应调整还是要绕点弯路的。网上百度了很多,多数说的很含糊,还有很多是用程序实现的,既然已经有Qt Creator那么高集成度的工具了,我还是倾向于直接在Qt Creator中通过可视化配置的方式完成,一是所见即所得,而是效率要高不少。 Qt中如果想实现窗体内空间随着窗体大小调整,必须使用布局管理,常用的布局管理有QHBoxLayout、QVBoxLayout、QGridLayout,空的地方使用spacer 控件进行填充,因此首先将窗体空间使用布局管理典型应用如下图所示。 我这里使用QGridLayout,按住Ctrl多选需要布局的窗体控件,右键-布局-栅格化局,根据需要进行调整。 要想是控件根据窗体进行调整,最为重要的一点就是设置窗口部件的大小策略,各控件均有这一项设置,如下图所示。

这部分具体的参数解释摘录如下: 结合控件的SizePolicy属性,来控制布局管理中的控件的尺寸自适应方式。 控件的sizePolicy说明控件在布局管理中的缩放方式。Qt提供的控件都有一个合理的缺省sizePolicy,但是这个缺省值有时不能适合所有的布局,开发人员经常需要改变窗体上的某些控件的sizePolicy。一个QSizePolicy的所有变量对水平方向和垂直方向都适用。下面列举了一些最长用的值: A. Fixed:控件不能放大或者缩小,控件的大小就是它的sizeHint。 B. Minimum:控件的sizeHint为控件的最小尺寸。控件不能小于这个sizeHint,但是可以 放大。 C. Maximum:控件的sizeHint为控件的最大尺寸,控件不能放大,但是可以缩小到它的最小 的允许尺寸。

用Qt生成dll类库及调用方法

用Qt生成dll类库及调用方法 (2010-08-16 11:01:01) 转载▼ 标签: 教育 .NET2005: 空白工程新建DLL后,将DLL和LIB文件放入需要调用的“指定目录” 项目-》属性->连接器-》常规-》附加库目录->添加“指定目录” 项目-》属性->连接器-》输入-》附加依赖项->添加“LIB文件” 添加头文件到项目中,则DLL可用! VC6.0: 使一个项目编译生成DLL库而不生成可执行文件: 删除main()方法; 将.pro项目文件中的TEMPLATE = app改为TEMPLATE = lib。 然后编译,此时生成的就是.a和.dll的文件。 在另一个项目中调用此DLL: 在项目文件中添加LIB。如添加此行:LIBS += "D:\workspace\MRP_Common\debug\common.dll" (common.dll既是上面生成的DLL);复制dll中类或方法的头文件到该项目中,并在要调用common.dll中类或方法的文件上面include; make,在debug目录中生成可执行文件,然后将dll复制到debug中,运行。 例子: ########################### 生成DLL的工程: ####################### 修改pro文件: TEMPLATE=lib ########################### .h文件 ####################### #ifndef DLLTEST_H #define DLLTEST_H #ifdef Q_WS_WIN #define MY_EXPORT __declspec(dllexport)

将常用的符号制作成自己的Word工具栏

将常用的符号制作成自己的Word工具栏(多图) https://www.360docs.net/doc/4717318811.html, 2004年09月10日 08:54 天极yesky 文/杨兴平 Word作为非常流行的文字处理软件,有着很强大的功能,今天,我以Microsoft Word XP为例,向大家介绍如何制作自己的Word工具栏。 不知道朋友们是否想过把常用的符号快速做成一个工具栏?这是很有用的,数学老师可以把常用的数学符号做成一个工具栏,俄语老师可以把俄文字母做成一个工具栏……这样的工具栏,和Word的其它工具栏一样,它使用起来十分方便。如果你也想做一个有自己特色的工具栏,那就和我一起试一试吧。 在菜单栏上选择“插入→符号”命令,打开“符号”对话框,双击对话框中的数学符号,在文档中插入一些数学符号(如图1)。接下来,我们把这些符号都添加到“自动图文集”中。 在图1中,我们选中文档中的“∑”符号,按下Alt+F3键,弹出“创建‘自动图文集’”对话框,点击“确定”,“∑”符号就被添加到“自动图文集”中了。利用同样的方法,把图1中插入到文档中的其它数学符号也添加到“自动图文集”中。 接下来,在菜单栏上执行“工具→自定义”命令,先把弹出的对话框切换到“工具栏”选项卡,点击“新建”,利用弹出的“新建工具栏”对话框,新建一个名为“数学符号”的工具栏,完成后,新建的“数学符号”工具栏就出现在窗口中了。接着,把“自定义”对话框切换到“命令”选项卡,在“类别”列表框中选择“自动图文集”,在右侧的“命令”列表框找出我们添加到“自动图文集”中的数学符号,依

次将它们拖动到窗口中的“数学符号”工具栏上(如图2),完成后,关闭“自定义”对话框,以后,你就可以点击这个工具栏上的按钮,在文档中直接插入数学符号了。 上面我们制作的“数学符号”工具栏上的按钮都没有自己的图标,你还可以为它们添加或编辑一个图标。在菜单栏执行“工具→自定义”命令,再次调出“自定义”对话框,切换到“命令”选项卡,左键单击“数学符号”工具栏上的任一一个按钮选中该按钮,点击右键或“自定义”对话框命令选项卡上的“更改所选内容”按钮,如图3所示,在弹出的菜单中,选择“更改按钮图标”,你可以为该按钮选择一个图标,选择“编辑按钮图标”你可以编辑该按钮的图标,另外,你也可以为按钮命名,或者控制,在工具栏上按钮显示名称还是图标,或者两者都显示。 使用同样的方法,你可以把“自动图文集”中的其它内容,如一大段文字或者是一个漂亮的图形都做成工具栏上的一个按钮,这是一件非常有趣又有用的事。

Qt 创建List, 添加删除Item

#ifndef LISTWINDOW_H_ #define LISTWINDOW_H_ #include class QPushButton; class QListWidget; class QWidget; class ListWindow : public QDialog { Q_OBJECT public: ListWindow(QWidget *parent = 0); virtual ~ListWindow(); public slots: void moveLeft(); void moveRight(); private: QPushButton *moveLeftButton; QPushButton *moveRightButton; QListWidget *leftList; QListWidget *rightList; }; #endif/**//*LISTWINDOW_H_*/ #include"ListWindow.h" #include #include #include #include #include #include #include #include ListWindow::ListWindow(QWidget *parent) : QDialog(parent) { QGridLayout *gridLayout = new QGridLayout(); gridLayout->addWidget(leftList = new QListWidget(), 0, 0, 3, 1); gridLayout->addWidget(moveLeftButton = new QPushButton("<<"), 0, 1, 1, 1); gridLayout->addWidget(moveRightButton = new QPushButton(">>"), 1, 1, 1, 1); gridLayout->addWidget(rightList = new QListWidget(), 0, 2, 3, 1); QObject::connect(moveLeftButton, SIGNAL(clicked()), this, SLOT(moveLeft())); QObject::connect(moveRightButton, SIGNAL(clicked()), this, SLOT(moveRight())); QStringList items; items << "One" << "Two" << "Three" << "Four" << "Five" << "Sechs" << "Sieben" << "One" << "Two" << "Three" << "Four" << "Five" << "Sechs" << "Sieben"; leftList->addItems(items); this->setLayout(gridLayout); }

Qt自定义窗口部件

【原创】Qt自定义窗口部件 QtDesigner自定义窗口部件有两种方法:改进法(promotion)和插件法(plugin)改进法 1、改进法之前,要先写好子类化QSpinBox后的HexspinBox.h和HexspinBox.cpp文件。把这两个文件拷贝到想要的项目中。 HexspinBox.h HexspinBox.cpp

2、在需要开发的项目中的窗口中, 1、用Qt Designer创建一个新的窗体main.ui,把控件箱里的QSpinBox添加到窗体中。 2、右击微调框,选择“Promote to ”上下文菜单。 3、在弹出的对话框中,类名处填写“HexSpinBox”,头文件填写“hexspinbox.h” 好了。在ui生成的包含有QSpinBox的控件文件中,ui的源代码里面多了一段 HSpinBox QSpinBox

hspinbox.h
包含文件变为"hexspinbox.h"。在Qt Designer中,QSpinBox表示的控件为HexSpinBox,并且可以设置所有的QSpinBox的属性。

可以在VS2008中编译一下main.ui文件,从ui_main.h源代码中可以知道,引入的控件是: 升级法的缺点是不能在Qt Designer中设置自定义控件自己的特有属性,也不能够绘制自己。这些问题可以用插件法解决。 插件法 1.VS中创建Qt4 Design Plugin 工程,名称叫custom 自动建立如下几个文件: 自定义控件:custom.h,custom.cpp 插件:customplugin.h,customplugin.cpp 源代码如下:

Qt里添加OpenCV库

Qt里添加OpenCV库 0、新建一个控制台工程 唯一需要注意的是选择编译器,这一定要和你的opencv下载的编译版本一致!我下载的opencv是msvc2015编译的64位所以这里一定要选择相同的! 1、新建的工程点右键,选择添加库,如下图:

2、选择外部库 3、找到Opencv解压目录下的opencv\build\x64\vc15\lib\opencv_world401.lib 添加include 路径opencv\build\include,具体操作看下图: 特别需要注意的是:需要把opencv\build\x64\vc15\lib\bin目录添加到环境变量里Path里

4.点击确定后,工程文件*.pro里会添加如下内容: win32:CONFIG(release,debug|release):LIBS+= -LD:/opencv/build/x64/vc15/lib/-lopencv_world401 else:win32:CONFIG(debug,debug|release):LIBS+= -LD:/opencv/build/x64/vc15/lib/-lopencv_world401d else:unix:LIBS+=-LD:/opencv/build/x64/vc15/lib/-lopencv_world401 INCLUDEPATH+=D:/opencv/build/include DEPENDPATH+=D:/opencv/build/include 5.保存工程,执行qmake,更新工程make文件。这一步很重要,新手往往忘记这一步导致不能使用!!

自定义菜单和工具栏

关于自定义菜单和工具栏 本文中的示例 命令栏 控件常量 菜单栏 返回命令栏控件的ID 确定活动菜单栏的名称 保存(内置或自定义菜单栏的)活动状态创建自定义命令栏 显示自定义命令栏 删除自定义命令栏 隐藏命令栏 显示命令栏 还原内置命令栏 菜单 向命令栏添加自定义菜单控件 禁用命令栏上的菜单控件 启用命令栏上的菜单控件 删除命令栏上的菜单控件 还原命令栏上的菜单控件 命令 向菜单控件添加分隔条 在菜单上创建自定义命令控件 在命令控件旁放置选中标记 禁用命令栏上的命令控件 启用命令栏上的命令控件 删除菜单上的命令控件 还原菜单上的内置命令控件 子菜单 添加子菜单 向子菜单添加命令 禁用子菜单上的命令控件 删除子菜单上的命令 禁用子菜单控件 删除子菜单控件 快捷菜单栏 新建快捷菜单栏 快捷菜单 在快捷菜单栏上创建命令 禁用快捷菜单栏上的命令控件 删除快捷菜单栏上的命令 删除快捷菜单栏 还原内置快捷菜单栏上的命令 快捷菜单上的子菜单 在快捷菜单栏上新建子菜单 在快捷菜单栏的子菜单上创建命令控件禁用快捷菜单上的子菜单项控件 删除快捷菜单上的子菜单项控件 禁用快捷菜单上的子菜单控件 删除快捷菜单上的子菜单控件 查找更多信息 对象浏览器 Microsoft 知识库 这篇文章中的信息适用于: 附数组使用方法 中的示例 本文中的示例在Excel 2000、Excel 2002 和Excel 2003 中使用VBA 代码来自定义菜单。要使用示例宏,请按照下列步骤操作: 1. 启动Excel。

2. 在“工具”菜单上,指向“宏”,然后单击“Visual Basic 编辑器”。 3. 在“插入”菜单上,单击“模块”。 4. 键入本文中的一个宏示例,也可使用复制粘贴操作将宏示例复制到模块表中。 5. 在“运行”菜单上,单击“运行子过程/用户窗体”。 6. 如果出现“宏”对话框,请单击宏名称,然后单击“运行”。 命令栏 在Microsoft Office 中,所有工具栏、菜单栏和快捷菜单都是被作为“命令栏”这样一种对象以编程方式控制的。下列所有项目在VBA 中皆用CommandBar对象表示: ?菜单栏、工具栏和快捷菜单。 ?菜单栏和工具栏上的菜单。 ?菜单、子菜单和快捷菜单上的子菜单。 您可以修改任何内置的菜单栏和工具栏,还可以创建和修改用您自己的VBA 代码交付的自定义工具栏、菜单栏和快捷菜单。您可以将程序功能以单个按钮的形式放在工具栏上,或以命令名称组的形式放在菜单上。因为工具栏和菜单都是命令栏,所以可以使用同一类型的控件。 在VBA 和Microsoft Visual Basic 中,按钮和菜单项用CommandBarButton对象表示。显示菜单和子菜单的弹出控件用CommandBarPopup对象表示。在以下示例中,名为“Menu”的控件和名为“Submenu”的控件都是用于显示菜单和子菜单的弹出控件,并且这两个控件是各自的控件集中唯一的CommandBar对象。 在Microsoft Excel 中,菜单栏和工具栏被视为是同一种可编程对象,即CommandBar对象。可以使用CommandBar对象中的控件来指代菜单、菜单项、子菜单和快捷菜单。可以在Type参数中使用一个常量为每个控件指定要用于菜单、子菜单或命令的控件类型。 返回目录 控件常量 下面是Excel 2003 中的各种控件常量的列表,这些常量指定用于特定菜单栏控件的图形控件类型: ?MsoControlActiveX* ?MsoControlAutoCompleteCombo*** ?MsoControlButton ?MsoControlButtonDropdown ?MsoControlButtonPopup ?MsoControlComboBox ?MsoControlCustom ?MsoControlDropdown ?MsoControlEdit ?MsoControlExpandingGrid ?MsoControlGauge ?MsoControlGenericDropdown ?MsoControlGraphicCombo ?MsoControlGraphicDropdown ?MsoControlGraphicPopup ?MsoControlGrid ?MsoControlLabel ?MsoControlLabelEx*** ?MsoControlOCXDropDown ?MsoControlPane **

QT5编写和调用DLL动态库的终极实践

QT5编写和调用DLL动态库的终极实践如今,使用QT编程的人越来越多,但由于缺乏相关的中文文档,使得大家在学习的过程中偶有碰壁,网上的大多也有疏漏税,即使照着做也未必能成功。今天给大家讲讲QT5.02编写和调用DLL动态库的编程实践,按照以下方法可以确保你对DLL编写和调用少走变路。步聚一: 编写所需的DLL文件,如下图创建C++库文件工程。类型选择此处选的是动态库。工程名dll,生成的类名为Dll。

如下图,在dll.h 头文件中加入函数SHOW。 在dll.cp中编写该函数的实现。此处我让函数打开一个窗口并在应用程序输出中输出“OK”字符。顺便讲一下在DLL编写时如何加入容积资源文件。依次点击“文件”菜单选择“新建文件或项目”然后如图选择“QT设计师界面类”

生成的文件及类名如下图: #include"dll.h"

#include"qdebug.h" #include"dialog.h" Dll::Dll() { } void Dll::show(){ Dialog*wi=new Dialog(); wi->show(); qDebug()<<"ok"; } 到这里,DLL文件的编写结束。最后一步就是构建该程。在该程名字上点鼠标右键,再选择构建。 接下来编写测试工程,类型为QT GUI应用。工程名字为PO,

在po.pro文件中加入LIBS+=..\dll.DLL,完整代码如下: #------------------------------------------------- # #Project created by QtCreator2013-08-06T10:19:12 #LIBS+="D:\c\po\dll.dll" #------------------------------------------------- QT+=core gui greaterThan(QT_MAJOR_VERSION,4):QT+=widgets TARGET=po TEMPLATE=app LIBS+=..\dll.DLL SOURCES+=main.cpp\ mainwindow.cpp HEADERS+=mainwindow.h\ dll.h\ dll_global.h FORMS+=mainwindow.ui 在mainwindo.ui加一个按纽,并添加单击槽函数。完整代码如下: #include"mainwindow.h"

第七章 自定义菜单与工具栏

第七章自定义菜单 作为应用程序最常用的功能组织形式,菜单设计在程序开发中是必不可少的。Visual FoxPro 支持两种类型的菜单:普通菜单和快捷菜单。普通菜单用来列出整个程序的各种功能,用户通过点击各个菜单项实现对相应程序功能的调用。普通菜单可以单独运行,也以可附着在表单窗口上成为SDI(单文档界面)菜单。快捷菜单通常在单击鼠标右键时出现,它列出了与当前对象密切相关的操作选项,用户通过选择其中的菜单项快速完成相应的操作。 创建菜单后将生成两种类型的文件: (1)菜单定义文件。该文件在编辑菜单项时产生,其文件扩展名为.mnx; (2)菜单程序文件。该文件由菜单定义文件生成的可执行的菜单程序文件,其文件扩展名.mpr。 7.1 菜单规划 应用程序的实用性一定程度上取决于菜单系统的质量。 在设计菜单系统时,必须考虑下列准则: (1)按照用户所要执行的任务组织系统,而不要按应用程序的层次组织系统。 只要查看菜单和菜单项,用户就可对应用程序的组织方法有一个感性认识。因此,要设计好这些菜单和菜单项,必须了解用户思考问题和完成任务的方法。 (2)合理排列菜单组和菜单项,给每个菜单组(项)定义一个有意义的菜单标题。 按照菜单项的使用频率、逻辑顺序或字母顺序组织菜单组(项)。当菜单项较多时,按字母顺序排列便于查看菜单项。 (3)在菜单项的逻辑组之间放置分隔线,增强菜单项的可读性。 (4)将每组菜单项的数目限制在一个屏幕之内。 如果菜单项的数目超过了一屏幕,则应为其中的一些菜单项创建子菜单。 (5)为菜单和菜单项设置访问键或键盘快捷键。 (6)使用能够准确描述菜单项的文字。 描述菜单项时,应使用日常用语而非计算机术语。同时,说明选择一个菜单项产生的效果时,应使用简单、生动的动词,而不要将名词当作动词使用。另外,用相似语句结构来说明菜单项,保持风格的一致性。 (7)在菜单项中混合使用大小写字母。只在特别强调时才使用大写字母。

QT界面开发

1Qt4界面开发 1.1Q t历史 Qt是一个用于桌面系统和嵌入式开发的跨平台应用程序框架。它包括一个直观的API 和一个丰富的类库,以及用于GUI开发和国际化的集成工具,另外它支持Java?和C++开发。Qt让企业无须重新编写源代码,便可以构建运行在不同桌面操作系统和嵌入式设备上的软件应用程序。 Qt框架最早可公开获取是在1995年5月。最初是由Haavard Nord(TrollTech公司的首席执行官)和Eirik Chambe-Eng(TrollTech公司的董事会主席)。Haavard和Eirik 最早在特隆赫姆的挪威技术学院相遇,在那里他们双双获得了计算机科学硕士学位。 早在1991年,Haavard 就开始写一些最终成为Qt的类,并和 Eirik合力设计。在接下来的一年,Eirik提出了“信号和槽”的思想,一个现在已经被一些其他套装工具包含简单但功能强大的GUI编程范式。Haavard 接受了这一思想并手工生成了这一思想的代码实现。到1993年,Haavard和Eirik已经完成了Qt的第一个图形内核的开发并能用它来实现一些他们所需的物件。在这一年的年末,Haavard建议他们一起去经商,创建一个“世上最好的C++ GUI框架”。 字母“Q”被选为类的前缀是因为这个字母在Haavard的Emacs字体中看起来很漂亮。受到Xt(the X toolkit)的启发,字母“t”被追加来表示“toolkit”。公司在1994年5月4日成立,起初被命名为“Quasar Technologies”,之后被改名为“Troll Tech”,今天则被称为奇趣科技(Trolltech)。 1995年5月20日,Qt 0.90被上传到https://www.360docs.net/doc/4717318811.html,。六天后,这一发布在comp.os.linux.announce被宣布。这是Qt的第一个公共发行版。Qt可以被用在Windows 和Unix开发中,在两个系统中提供相同的API。Qt从一开始就可以在两种许可协议下获取:一个是商业开发中需要的商业许可协议,一个用于开源开发的自由软件版。 1996年3月,欧洲航天局成为Qt的第一个客户,一下买了十个Qt商业许可。Qt 0.97在同年的5月底发布,1996年9月24日,Qt 1.0发布。到了同年年底,Qt到达了版本1.1;拥有8个客户,每一个都在不同的国家,他们购买了18个商业许可。 Qt 1.2 在1997年4月发布。Matthias Ettrich利用Qt构建KDE的决定帮助Qt成为Linux C++ GUI 开发的实际标准,1997年9月Qt 1.3发布。 1998年9月,Qt 1的最后一个主要发行版1.40发布。Qt 2.0于1999年7月发布。Qt 2有了一个新的开源许可协议,发布许可协议(QPL),遵守开源的定义。1999年8月,Qt赢得了LinuxWorld的“最佳开发库/工具”大奖。 2000年奇趣科技发布了Qtopia核心(后来成为Qt/Embedded)。它被设计用来运行在嵌入式Linux设备上并提供了自己的窗口系统作为X11的一个轻量级代替。现在Qt/X11和Qtopia核心都可以通过GNU通用许可(GPL)获取。到2000年年底,奇趣科技成立了Trolltech Inc.(USA)并且发布了Qtopia的第一个版本,一个移动电话和PDAs应用程序平台。Qtopia赢得了2001和2002年LinuxWorld的“最佳嵌入式 Linux 解决方案”大奖,

QT问题集锦-从学习Qt遇到地各种问题

第一篇初级问题 1 用Qt4.8.5打不开冯工柏菲软件 问题描述:运行环境为Qt4.8.5 + QtCreator3.0.0+VS2010专业版 + Debuging Tools for Windows(x86),用Creator无法打开项目文件,截图如下: 弹出错误:Cannot read E:/PROJECT/Zhou-0410/testToolbar.pro: Unexpected UTF-8 BOM 原因分析:未知 解决方法: 1 安装VS2010SP1,未解决 2 安装VS-Add,未解决 3 使用Creator2.6解决 2 编译失败,系统找不到指定路径 问题描述:见下图

原因分析: 1)可能:添加VS编译器环境变量,在PATH中添加VS 中NMAKE路径 2)确定:Creator或编译器无法识别&符号,即路径原文件名为R&T中含有非法字符,无法准确识别路径 3)默认的环境变量已经有了NMAKE路径 解决方法:把路径中非法字符删除即可 3 编译出现乱码,Parse Error 原因分析:未知,应该是非法字符导致。 4 无法解析的外部符号 原因分析:声明的函数,未实现,或在未实现它的情况下调用了它 解决方法:实现后再调用 5 中文乱码 问题描述:见图

解决方法:转换成utf8格式 6 控件背景图片添加 问题描述:按照相对路径添加背景图片不显示解决方法: 1)相对路径起始点为构建目录,如图

2)添加资源文件,把背景图片放到资源文件中,再通过控件属性,指定资源文件中的背景图片即可。 7 昨天能启动运行成功,今天说异常结束,运行不了 原因分析:可能是昨天在windows、system32里面添加了qtcore.dll等文件导致 解决方法:删除之后就可以运行了,但具体删除哪个,待定 8 通过控件,查找操作函数? 9 修改控件名称时,弹出外部链接错误 解决方法:修改名称后,通常有以下步骤 1)在头文件中删除对应槽; 2)修改槽动作名称或重新生成槽动作,把之前代码拷贝到新槽动作中。 10 Qt数据类型转换 1)int 转 QString int a=10;

自定义设置技巧

2.4 自定义设置技巧(1) 2.4.1 快速为工作表重命名 如果要更改工作表的名字,一般都是利用“重命名”命令来完成的。请问还有其他快速的方法吗? 答:其实只要用鼠标左键双击工作表标签名称,然后就可以直接输入新的名称了。 2.4.2 自定义自动排序类型 系统能够自动为其自带的数据类型(如星期、季度等)进行排序。请问如何让自己定义的数据类型实现自动排序? 答:要让系统自动排序我们自己定义的数据类型,可以将该类型添加到系统中。操作方法如下:先单击“工具”菜单栏中的“选项”命令,在弹出的对话框中选择“自定义序列”选项卡,在“自定义序列”列表框中选择“新序列”项,再在“输入序列”列表框中按顺序依次输入新序列。如我们可以为设置一个奖项的序列:特等奖、一等奖、二等奖、三等奖、鼓励奖。每输入完一项后,按回车键转到下一行再输入第二项。如图2-26所示。 图2-26 添加序列

最后单击“添加”按钮即可。这样就可以在左边的序列列表框中找到刚才添加的序列了。它将和系统自带的序列一样实现自动排序。 2.4.3 多窗口方式浏览工作表 在实际应用中,常常为在一个大工作表文档中比较两个单元格数据而烦恼,因为要频繁地在各个单元格位置之间进行切换。如果能够对同一个工作表文档多开几个窗口就好了。请问可以实现吗? 答:这是完全可以的。按以下操作即可实现:移动鼠标到工作表窗口右边的滚动条上的黑三角形按钮上方的小横杠上,当鼠标变成一个中间为一个“=”符号,纵向为两个小箭头时,双击鼠标左键,这时当前窗口就会被横向的分隔成两个独立的部分。这两个窗口显示的都是同一个工作表,这样就可以在两个窗口中分别进行操作了,再也不要在一个窗口中来回地查找不同的单元格了。其实开始那个小横杠就是我们的文件横向分隔按钮。当然有横向分隔自然就有纵向分隔了。在水平滚动条最右边也有一个同样的分隔条,执行用鼠标左键双击后,就可以将窗口纵向分成两个独立的部分。如果在横向分隔的基础上再执行纵向分隔就可以将当前窗口分成四个独立的部分了。如果要取消分隔只要再用鼠标左键双击分隔条即可重新恢复单窗口模式。 2.4.4 给单元格重新命名 在函数或公式中引用单元格时,一般都用字母加数字的方式来表示单元格,如“A1”表示第一行第一个单元格。请问可以用其他方式来替单元格命名吗? 答:用数字和字母的组合来命名单元格只是系统默认的一种方式而已,还可以用以下方法来为单元格命名。首先选择要命名的单元格,然后在工作表左上角的“名称”框中输入希望的新名字,如可以输入“一号”,然后按下“Enter”键结束。这样下次就可以用这个名称来引

相关文档
最新文档