我有Dialog碎片的问题.我的自定义布局的简单对话框正常工作.但我希望在显示对话框时启动控件.我试图用方法做到这一点onActivityCreated.但是getView()返回null,所以我认为我必须设置自定义视图onCreateView而不是onCreateDialog.在这里发生错误.当我使用onCreateView时,我的应用程序崩溃了.这是我的代码:
class StatisticDialog extends DialogFragment {
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
// Use the Builder class for convenient dialog construction
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
builder .setPositiveButton(getString(android.R.string.ok), new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
// FIRE ZE MISSILES!
}
});
// Create the AlertDialog object and return it
return builder.create();
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
return inflater.inflate(R.layout.statistics, container, true);
} …Run Code Online (Sandbox Code Playgroud) 我想要记录屏幕(通过每秒捕获15个屏幕截图).这部分我知道怎么做.但我不知道如何将其写成一些流行的视频格式.我找到的最佳选择是将帧写入分离的PNG文件并使用命令行Mencoder,它可以将它们转换为多种输出格式.但也许有人有另一个想法?
要求:
问候
我有一个应用程序,用户可以通过选择一个文件或将选定目录中的所有文件添加到ListView. 添加单个文件时,一切都很好,但是对于目录,我得到了Unsupported Uri. 问题与权限无关:
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.dibo.testapp, PID: 12226
java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=65579, result=-1, data=Intent { dat=content://com.android.providers.downloads.documents/tree/raw:/storage/emulated/0/Download/2006 A Good Year flg=0xc3 }} to activity {com.example.dibo.testapp/com.example.dibo.testapp.MainActivity}: java.lang.UnsupportedOperationException: Unsupported Uri content://com.android.providers.downloads.documents/tree/raw%3A%2Fstorage%2Femulated%2F0%2FDownload%2F2006%20A%20Good%20Year
at android.app.ActivityThread.deliverResults(ActivityThread.java:4360)
at android.app.ActivityThread.handleSendResult(ActivityThread.java:4402)
at android.app.servertransaction.ActivityResultItem.execute(ActivityResultItem.java:49)
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1808)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:193)
at android.app.ActivityThread.main(ActivityThread.java:6669)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
Caused by: java.lang.UnsupportedOperationException: Unsupported Uri content://com.android.providers.downloads.documents/tree/raw%3A%2Fstorage%2Femulated%2F0%2FDownload%2F2006%20A%20Good%20Year
at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:167)
at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:135)
at android.content.ContentProviderProxy.query(ContentProviderNative.java:418)
at android.content.ContentResolver.query(ContentResolver.java:802)
at android.content.ContentResolver.query(ContentResolver.java:752)
at …Run Code Online (Sandbox Code Playgroud) 我正在尝试创建类似于GMail的视图.我知道GMail IMAP有扩展X-GM-THRID,我可以在FETCH命令中使用,但这会返回相同数量的项目,我必须通过线程ID手动分组.有没有更快的方式来分组?我的意思是,可以google imap服务器返回我按线程ID分组的消息列表(比如在gmail web界面中)?更具体:
如果我有这个清单(THREAD ID | TEXT)
我想从服务器获取:
我能这样做吗?最后,我必须通过我自己对此进行分组,但这种解决方案效率低且速度慢(我有很多消息要分组)
对我的英语表示遗憾和抱歉.
我有一个用 Free Pascal 编写的多平台应用程序。此应用程序在某些事件上播放短促的声音。在 Windows 上,我可以通过 MMSystem 和 sndPlaySound('sound.wav') 来做到这一点。但是,我不知道如何在没有外部库的情况下在 Linux 上执行此操作。
我有一个使用 SDL 和 OpenAL 播放它的解决方案,但我不希望对这些库有任何依赖来播放一个简短的声音。默认情况下,是否存在大多数发行版上都存在的 Linux 命令行播放器?文件格式无关紧要;我会转换它。
我正在尝试在Qt桌面应用程序中测试动画.我刚刚从帮助中复制了示例.单击按钮后,新按钮只显示在左上角没有动画(甚至结束位置错误).我错过了什么吗?
Qt 5.0.1,Linux Mint 64bit,GTK
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QPropertyAnimation>
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::on_pushButton_clicked()
{
QPushButton *button = new QPushButton("Animated Button", this);
button->show();
QPropertyAnimation animation(button, "geometry");
animation.setDuration(10000);
animation.setStartValue(QRect(0, 0, 100, 30));
animation.setEndValue(QRect(250, 250, 100, 30));
animation.start();
}
Run Code Online (Sandbox Code Playgroud)
编辑:解决了.动画对象必须作为全局引用.例如,在私有QPropertyAnimation*动画部分中.然后QPropertyAnimation = New(....);
我还在学习C++.我有一个问题.假设您的项目具有始终存在的全局对象,例如ApiManager,所有其他模块都可以访问它(by #include).现在我通过以下方式做到:
标题:
class ApiManager : public QObject
{
Q_OBJECT
public:
explicit ApiManager(QObject *parent = 0);
signals:
public slots:
};
extern ApiManager apiMng;
Run Code Online (Sandbox Code Playgroud)
资源:
ApiManager apiMng;
Run Code Online (Sandbox Code Playgroud)
问题是其他对象在初始化时也需要访问,我注意到C++全局对象是按字母顺序创建的.我想知道你是如何处理它的?为此存在一些诀窍?例如,在Free Pascal中世界每个类模块initialization和finalization部分:
Type
TApiManager = class
end;
var ApiMng: TApiManager;
initialization
ApiMng := TApiManager.Create;
finalization
ApiMng.Free;
Run Code Online (Sandbox Code Playgroud)
... initialization项目模块的顺序可以在uses子句中的项目源中排序(如#include在C++中).我知道有很多方法可以做到这一点(例如main.cpp用自定义顺序初始化所有内容)但是想知道C++世界中什么是"好习惯"
编辑:由Q_GLOBAL_STATIC解决(在Qt 5.1中引入,但也适用于Qt 4.8),但仍有两个问题:
仍然不知道如何管理构造函数订单(以及在何处初始化它).因为Q_GLOBAL_STATIC创建的全局对象不是在应用程序启动时创建的.它们是在首次使用时创建的.所以我需要用自定义顺序在某处(在main.cpp?中)"触摸"这些对象.
文档说必须在body .cpp文件中调用Q_GLOBAL_STATIC,而不是在标头中调用.但是其他类没有看到这个对象.所以我创建了静态函数,它暴露了对这个对象的引用:
的.cpp:
Q_GLOBAL_STATIC(ApiManager, apiMng)
ApiManager *ApiManager::instance()
{
return apiMng();
}
Run Code Online (Sandbox Code Playgroud)
但是从这个主题:http://qt-project.org/forums/viewthread/13977 Q_GLOBAL_STATIC应该自动公开实例,但它没有
我正在读取我应该使用worker对象并通过moveToThread将其移动到线程而不是直接从QThread继承.但我找不到解决方案如何在我的对象工作者中停止循环.例如,我有测试循环:
void CollectionWorker::doWork()
{
for (int i = 0; i < 10; ++i) {
sleep(1);
emit ping(i);
}
}
Run Code Online (Sandbox Code Playgroud)
现在我将此对象移动到线程:
worker->moveToThread(mTh);
Run Code Online (Sandbox Code Playgroud)
这工作正常.但是当我调用mTh.quit()时,线程正在等待,直到doWork中的循环结束.当我从继承的QThread然后直接在每次循环,我可以检查线程状态,并在thred完成破环,但不知道如何做到这一点的工人对象.我可以在worker对象中创建一些标志并从主线程切换它吗?或者我可以找到线程所有者并检查它的状态吗?或者在启动线程之前更好,在工作对象中设置线程指针,然后检查状态?什么是最好的线程安全解决方案?
问候
我正在使用X11 lib.是否有可能获得系统颜色?我的意思是从当前的用户主题,如脸部,突出颜色等.我不能使用GTK和QT库.存在以某种方式通过某些环境变量或freedesktop获取颜色?
问候