[Qt, C++] 새 창을 띄우는 다이얼로그(Dialog) (Modal, Modeless)

목적 Qt Creator를 활용, 프로젝트를 실행 시 다이얼로그를 호출한다. 모달(Modal)과 모달리스(Modeless) 다이얼로그는 모달과 모달리스 두 종류가 있다. 모달은 다이얼로그가 종료될 때까지 메인 윈도우 창을 제어할 수 없다. 반면 모달리스는 다이얼로그가 실행 중에도 메인 윈도우 창을 제어할 수 있다. 테스트 환경 Windows10 / C++ / Qt 5.15.2 / Qt Creator 4.13.3 모달방식의 다이얼로그 실행 다이얼로그 생성 … Read more

[Kotlin] 코틀린 문자열 자르기(split, chunked)

코틀린 문자열 자르기 delimiter를 기준으로 문자열 자르기(split) split함수를 이용하면 delimiter를 기준으로 문자열을 자를 수 있다. 예를들어 delimiter가 쉼표라면 문자열을 쉼표를 기준으로 자른다. split의 리턴값은 List다. 위 인수 중 ignoreCase, limit는 생략 가능하며 생략시 기본값이 사용된다. 일반적인 경우는 delimiters만 지정하면 된다. ignoreCase, limit는 사용해본적이 없어서 아래 코드 주석으로 설명을 대체한다. 개수를 기준으로 문자열 자르기(chunked) 개수를 기준으로 … Read more

[Android] 안드로이드 버튼 배경 색 바뀌지 않는 증상

안드로이드 버튼 배경 색 바뀌지 않는 증상 안드로이드 버튼 위젯은 xml의 background 속성으로 배경 색을 변경할 수 있다. 그런데 배경색이 변경되지 않을 경우 테마의 MaterialComponents가 원인일 수 있다. MaterialComponents는 버튼 배경색을 default로 가지고 있어서 다른 색으로 변경이 안된다고 하는데, 자세히 알아본것이 아니라서 확실하진 않다. 어쨌든 내 경우 이 MaterialComponents가 원인이었다. 테마에서 MaterialComponents 대신 AppCompat로 변경하면 문제를 해결할 … Read more

[Android, Kotlin] Bottom Sheet Dialog 구현

Bottom Sheet Dialog Bottom Sheet Dialog는 하단에서 슬라이드 애니메이션으로 나타나는 다이얼로그다. 버튼을 선택시 BottomSheetDialog가 출력되고 BottomSheetDialog에서 Dismiss를 선택하면 다이얼로그가 사라지는 프로그램을 구현한다. 구현 themes.xml Bottom Sheet Dialog 뒤 액티비티를 반투명 처리하는 테마를 사용하기 위해 아래 코드를 추가한다. bottom_sheet_background.xml Dialog의 색, 모양 등을 정한다. Radius로 모서리를 라운딩처리한다. layout_bottom_sheet.xml 위에서 만든 bottom_sheet_background.xml을 배경으로 적용한다. Dialog에 텍스트뷰와 버튼을 … Read more

[Android, Kotlin] 특정 날짜의 요일 출력

목적 ‘2023-04-15’를 입력받아서 이에 해당하는 요일인 ‘토’를 반환한다. 설명 Calendar 클래스를 이용한다. Calendar의 set함수를 이용하여 2023년4월15일을 세팅한 Calendar의 객체를 생성하고 get(Calendar.DAY_OF_WEEK)으로 해당 객체의 요일을 호출한다. 코드

[Android, Kotlin] 안드로이드에서 시간차이 계산 구현

서론 두 지점의 시간 차이를 계산하는 코드는 다양한 곳에 쓰인다. 코드의 수행 시간을 측정할 수 있으며 특정 시간 이후 이벤트를 수행하도록 할 수 있다. 시간 차이 측정은 다양한 방법이 있지만, 이 글에서는 currentTimeMillis()와 elapsedRealtime()를 이용하여 구현한다. currentTimeMillis()는 후술 할 문제점을 안고 있기 때문에 elapsedRealtime() 사용을 권장한다. currentTimeMillis()는 1970년 1월 1일 자정부터 현재까지의 시간간격을 ms단위로 출력한다. 그래서 … Read more

[Android, Kotlin] 안드로이드 텍스트뷰(TextView) 가운데 정렬하기

서론 안드로이드 스튜디오에서 코드가 아닌 디자인으로 텍스트뷰의 텍스트를 가운데 정렬한다. 본론 레이아웃에서 텍스트뷰를 만들면 기본적으로 텍스트가 왼쪽정렬되어있다. xml에서 만약 위와같은 디자인이 아닌 코드가 보인다면 디자인으로 변경한다. 텍스트뷰를 클릭하고 우측의 ‘All Attributes’를 선택해서 속성목록을 연다. 목록에서 gravity를 찾고 center_horizontal을 체크하여 true로 바꾼다. 텍스트뷰의 텍스트가 가운데 정렬된것을 볼 수 있다. center_vertical을 true로 바꿀경우 위아래도 가운데 정렬할 수 … Read more