当用户点击主面板时,我想失去对JTextField的关注.
setFocusable(true)
不适合我.
如果我点击主面板,JTextField仍然是焦点,你可以输入内容.
注意:我的JFrame设置为可聚焦(true).
假设我有以下列表:
QList<Type*> list;
list.add(new Type());
list.add(new Type());
list.add(new Type());
list.add(new Type());
list.add(new Type());
list.add(new Type());
Run Code Online (Sandbox Code Playgroud)
如果我想清空列表,我可以打电话 list.clear()
它会自动删除每个指针,还是必须执行以下操作以防止内存泄漏:
foreach (Type* t, list) delete t;
list.clear();
Run Code Online (Sandbox Code Playgroud) 我有一个MyClass
继承自的子类QThread
.
我用这个MainWindow
实例的父代创建它(这个):
mMyClass = new MyClass("some_value", 1, 5L, this);
Run Code Online (Sandbox Code Playgroud)
我对Qt如何处理对象删除的理解是,QObject
当父项被删除时,每个父母都会被删除.
如果我的程序完成,我会收到警告 QThread: Destroyed while thread is still running
我怎样才能解决这个问题?我在解构器中使用以下代码尝试了它MainWindow
.不幸的是它无法正常工作:
if (mMyClass != 0 && mMyClass->isRunning()) {
mMyClass->deleteLater();
mMyClass->quit();
mMyClass->wait();
}
Run Code Online (Sandbox Code Playgroud) 您好我正在创建一个新的Outlook.Application(使用v.14.0.0.0 Office库)并使用C#检索收件箱电子邮件.只有当outlook没有运行时,我才会收到错误
'你调用的对象是空的'
在警报中(由第一行发生).程序是提前运行的(甚至没有进入catch部分).
try {
Outlook.Application outlookApplication = new Outlook.Application();
Outlook.NameSpace mapiNameSpace = outlookApplication.GetNamespace("MAPI");
Outlook.MAPIFolder folder = mapiNameSpace.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderInbox);
foreach (Object obj in folder.Items) {
if (obj is Outlook.MailItem) {
Outlook.MailItem mailItem = (Outlook.MailItem)obj;
}
}
} catch (Exception e) {
Console.WriteLine("Unfortunately an error occurred");
Console.WriteLine(e.Message);
}
Run Code Online (Sandbox Code Playgroud)
这个烦人的警报有什么解决方案吗?我可以抑制它或解决问题吗?
警报来自Outlook实例,我可以看到它,因为在导航栏中打开了Outlook实例(小警报对话框).
我想水平和垂直居中我的QTextEdit文本.
我尝试了这个,但它没有用.
m_myTextEdit = new QTextEdit("text edit", m_ui->centralWidget);
m_myTextEdit->setGeometry(5, 50, 400, 250);
m_myTextEdit->setReadOnly(true);
m_myTextEdit->setAlignment(Qt::AlignCenter);
Run Code Online (Sandbox Code Playgroud)
有没有机会将它设置为以StyleSheet为中心?
我想在Qt中的类中声明我自己的枚举并将其用于信号和插槽,但是我得到了这个错误.
QObject::connect: Cannot queue arguments of type 'ClassA::MyEnum'
(Make sure 'ClassA::MyEnum' is registered using qRegisterMetaType().)
Run Code Online (Sandbox Code Playgroud)
这是我的源代码:
ClassA.h
public:
enum MyEnum {
READING = 0,
STOPPED = 1,
FINISHED = 2
};
signals:
void changed(QString text, int readTextInPercent, ClassA::MyEnum status);
Run Code Online (Sandbox Code Playgroud)
ClassA.cpp
emit changed(QString("string"), 50, ClassA::READING);
Run Code Online (Sandbox Code Playgroud)
ClassB.h
public slots:
void changed(QString text, int readTextInPercent, ClassA::MyEnum status);
Run Code Online (Sandbox Code Playgroud)
ClassB.cpp
this->connect(m_ClassA, SIGNAL(changed(QString, int, ClassA::MyEnum)), this, SLOT(changed(QString, int, ClassA::MyEnum)));
void ClassB::changed(QString text, int readTextInPercent, ClassA::MyEnum status) {
}
Run Code Online (Sandbox Code Playgroud)
我不知道在哪里以及我必须使用哪个参数qRegisterMetaType
.
有没有办法说当前选择的文件应该用Sublime或任何其他外部编辑器打开?
我知道Main Menu -> Navigate -> Select In... -> 8
在finder或任何其他合适的文件浏览器中打开文件的快捷方式.从那里我可以在Sublime打开它,虽然这对我来说太过分了.
那么任何直接在Sublime中打开文件的花哨的makros /插件?
我的测试文件如下所示:
@RunWith(AndroidJUnit4.class)
@LargeTest
public class CreateNewSessionActivityTest {
@Rule
public IntentsTestRule<CreateNewSessionActivity> mActivityRule = new IntentsTestRule<>(CreateNewSessionActivity.class);
@Test
public void test() {
final Intent intent = new Intent();
intent.setAction(Intent.ACTION_SEND);
intent.setType("text/plain");
intent.putExtra(Intent.EXTRA_TEXT, "this is my auth token");
final Instrumentation.ActivityResult result = new Instrumentation.ActivityResult(Activity.RESULT_OK, intent);
intending(hasComponent(hasShortClassName(".CreateNewSessionActivity"))).respondWith(result);
onView(withId(R.id.create_new_session_auth_token_edit_text)).check(matches(isDisplayed()));
onView(withId(R.id.create_new_session_auth_token_edit_text)).check(matches(withText("this is my auth token")));
}
}
Run Code Online (Sandbox Code Playgroud)
在CreateNewSessionActivity.onCreate
方法中,我执行以下操作:
final Intent intent = this.getIntent();
if (intent != null) {
final String action = intent.getAction();
final String type = intent.getType();
if (Intent.ACTION_SEND.equals(action) && type != null) {
if …
Run Code Online (Sandbox Code Playgroud) 我如何才能找出 Android Gradle 插件正在使用哪个版本的 R8,比如说 4.0.1?
buildscript {
repositories {
google()
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:4.0.1'
}
}
Run Code Online (Sandbox Code Playgroud) c++ ×4
qt ×4
android ×3
android-r8 ×1
c# ×1
enums ×1
focus ×1
gradle ×1
instance ×1
intentfilter ×1
java ×1
jpanel ×1
jtextfield ×1
object ×1
outlook ×1
qlist ×1
qobject ×1
qtcore ×1
qtextedit ×1
qthread ×1
reference ×1
sublimetext ×1
sublimetext3 ×1
swing ×1