异度部落格

学习是一种生活态度。

0%

1)首先要修改 XX.pro 工程文件,加入一句 TRANSLATIONS += XXX.ts

2)然后在终端中运行 lupdate XX.pro 生成 ts 文件

3)然后用 Qt Linguist 翻译

4)Qt Linguist 里面有个发布功能,生成一个.qm 的文件

【试题描述】 问题:10个苹果,有一个苹果有问题,可能轻可能重,用三次找到问题苹果

【试题来源】未知

【试题分析】 先分组3 3 4,设第一组为A,第二组为B,第三组为C,然后拿3和3放天枰上 if (A ==B) { 问题苹果在C组里面 然后C组拿两个C1,C2放到各放一个到A,B组中 if(天枰偏移) { 证明问题苹果在放入的苹果C1,C2中,任取苹果C3换下C1。 If(天枰平衡){ 问题苹果为C1 }else { 问题苹果为C2 } } else { 证明问题苹果在剩下的苹果C3,C4中,任取苹果C3换下C1。 If(天枰平衡){ 问题苹果为C4 }else { 问题苹果为C3 } } } else { 证明问题苹果在A组或B组里面 然后取下A组,从C组中拿出3个换上 If(天枰平衡){ 问题苹果在A组中,取下所有苹果从A组中拿两个放上去,问题解决。 }else { 问题苹果在B组中,取下所有苹果从B组中拿两个放上去,问题解决。 } }

首先先贴代码

#include <iostream>
using namespace std;
class A
{
public:
A() { cout << "class A is constructed" << endl;}
~A() { cout << "class A is destroyed" << endl; }
//method
void fa() { cout << "class A fa method" << endl;}
void fb() { cout << "class A fb method" << endl;}
};
class B : public A
{
public:
B() { cout << "class B is constructed" << endl;}
~B() { cout << "class B is destroyed" << endl; }
//method
void fa() { cout << "class B fa method" << endl;}
void fb() { cout << "class B fb method" << endl;}
};
int main()
{
A *pa = new A;
B *pb = new B;
cout << endl;
pa->fa();
pa->fb();
cout << endl;
pb->fa();
pb->fb();
cout << endl;
delete pa;
delete pb;
cout << endl;
return 0;
}
运行结果如下:
class A is constructed
class A is constructed
class B is constructed
class A fa method
class A fb method
class B fa method
class B fb method
class A is destroyed
class B is destroyed
class A is destroyed

细心的娃肯定能发下些问题了,在子类的构造函数中先构造父类然后在构造子类,析构时先析构子类然后再析构父累

PS:这个题上次去 Foxit 有考,刚开始我是这么想的,后来居然给改了,郁闷阿...........

QTextBrowser是一个文本显示类,功能还是很强大的

下面的代码简单的实现了,QTextBrowser显示文本

QFile file("file.html");
if(!file.open(QFile::ReadOnly | QFile::Text))
qDebug() << "Can not open";
QTextStream in(&file);
licenceTextBrowser->setHtml(in.readAll());

用下面命令安装Sopcast播放器的PPA. sudo add-apt-repository ppa:jason-scheunemann/ppa

更新源列表 sudo apt-get update

用下面的命令安装Sopcast播放器 sudo apt-get install sopcast-player

QMenu *menu = new QMenu(tr("Right Contex Menu"),this);
menu->setStyleSheet("background-color : normal");
menu->addAction(Action1);
menu->addAction(Action2);
menu->addAction(Action3);
menu->addSeparator();
menu->addAction(Action4);
menu->exec(event->globalPos());

一般来是说窗体置顶和取消只要

setWindowFlags(Qt::WindowStaysOnTopHint);
        setWindowFlags(Qt::Widget);

要是开始不设置这个,后面要再设置就不可以了所以要加以改进,可以先 hide(),然后在 show(),代码如下:

hide();
setWindowFlags(Qt::WindowStaysOnTopHint);
show();

hide();
setWindowFlags(Qt::Widget);
show();

trayIcon = new QSystemTrayIcon(this);   //系统托盘

trayMenu = new QMenu(this); //托盘菜单
trayMenu->addAction(Action1);

......

trayMenu->addAction(quitAction10);

connect(trayIcon, SIGNAL(activated(QSystemTrayIcon::ActivationReason)), this, SLOT(show()));

trayIcon->setIcon(QIcon(":/icons/trayIcon.png"));
trayIcon->setContextMenu(trayMenu);

菜单多选有两种,一种是单选,一种是多选 多选简单,只要将 Action,setCheckable(true)

单选的话,也要将 Action,setCheckable(true),之后还要建立一个 QActionGroup,将 Action 都加进去就 ok 了

mplayer问题 [ao_alsa] unable to find simple control pcm , 0

播放器->右键->Preferences->Audio->Normalize Sound、 Enable equalizer、Enable Software Mixer三项打上勾选中.

或 把MPlayer打开,点击MPlayer的设置选项,然后选择"Audio"修改为"pulse PulseAudio audio output"