经LZ这么一说,我也遇到了同样的问题,用setDefaultCodec( QTextCodec::codecForName("UTF8") )或者QTextCodec::setCodecForTr(QTextCodec::codecForName("UTF8"))要全部显示中文时,setCaption函数可用(我用的是qt3),但是在QPushButton *sound = new QPushButton("开启声音",this,"sound");是乱码,不知道是怎么回事。但这个时候改为QPushButton(QString::fromUtf8("开启报警"),this,"warn")就可以显示了